DecimalFormat
是 NumberFormat
的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。
实例化
DecimalFormat df = (DecimalFormat) NumberFormat.getInstance();
DecimalFormat df = (DecimalFormat) DeciamlFormat.getInstance();
常用方法
void setMaximumFractionDigits(int newValue)
设置某个数的小数部分中所允许的最大数字位数。
void setMaximumIntegerDigits(int newValue)
设置某个数字的整数部分中所允许的最大数字位数。
void setMinimumFractionDigits(int newValue)
设置某个数的小数部分中所允许的最小数字位数。
void setMinimumIntegerDigits(int newValue)
设置某个数字的整数部分中所允许的最小数字位数。
void setMultiplier(int newValue)
设置百分数、千分数和类似格式中使用的乘数。
void setRoundingMode(RoundingMode.HALF_UP);
设置四舍五入
设置模板
如果模板中含有#,意思是指这个#号可代表一个或多个数字如果该位的数字是零的话则省略该位。
例如:3。将数字转化为百分比输出,有如下两种方法:
(1)
df.applyPattern("##.##%");
System.out.println(df.format(12.3456789));
System.out.println(df.format(1));
System.out.println(df.format(0.015));
输出分别为:1234.57% 100% 1.5%
(2)
df.setMaximumFractionDigits(2);
System.out.println(df.format(12.3456789*100)+"%");
System.out.println(df.format(1*100)+"%");
System.out.println(df.format(0.015*100)+"%");
输出分别为:
1,234.57% 100% 1.5%
4。设置分组大小
DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
df1.setGroupingSize(2);
System.out.println(df1.format(123456789));
输出:1,23,45,67,89
还可以通过df1.setGroupingUsed(false);来禁用分组设置,如:
DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
df1.setGroupingSize(2);
df1.setGroupingUsed(false);
System.out.println(df1.format(123456789));
输出:123456789
5。设置小数为必须为2位
DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance();
df2.applyPattern("0.00");
System.out.println(df2.format(1.2));
注意:
Math.round(1.23556*100)/100.0也可以保留两位小数,四舍五入
四舍五入的常量: