最近在做一个数字显示效果:每三个数字加一个逗号,并且保留两位小数。
如:332,630.00 195,717.00 使用的代码是:
public static String format2Decimal(float data) { DecimalFormat df = new DecimalFormat("#,###.00"); return df.format(data); }
但是在实现数字“0.00”的时候,变成了“.00”,“0.12”变成了“.12”,这样就不是我要的效果了。
查阅了资料后发现,DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度。
0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。
这样我就想到了一个方法,把整数最后一位“#”改为“0”,尝试性修改了一下代码,结果完成了我要的效果。代码如下:
/** * 将float类型的数据转换成以3位逗号隔开的字符串,并且保留两位小数 * * @return */ public static String format2Decimal(float data) { DecimalFormat df = new DecimalFormat("#,##0.00"); return df.format(data); } /** * 将float类型的数据转换成以3位逗号隔开的字符串,并且保留一位小数 * * @return */ public static String format1Decimal(float data) { DecimalFormat df = new DecimalFormat("#,##0.0"); return df.format(data); } /** * 将float类型的数据转换成以3位逗号隔开的字符串,并且保留整数 * * @return */ public static String format0Decimal(float data) { DecimalFormat df = new DecimalFormat("#,##0"); return df.format(data); }好了,希望对大家有所帮助。