1、保留两位小数,末尾是0仍然显示,不足补0
- DecimalFormat df1 = new DecimalFormat("0.00");
- System.out.println(df1.format(20.20222));
结果:20.20
- DecimalFormat df3 = new DecimalFormat("000.000000");
- System.out.println(df3.format(20.20222));
结果:020.202220
2、保留两位小数,如果末尾是0则舍去
- DecimalFormat df2 = new DecimalFormat("#.##");
- out.println(df2.format(20.20222));
结果:20.2
- DecimalFormat df4 = new DecimalFormat("###.########");
- System.out.println(df4.format(20.20222));
结果:20.20222
3、设置含%
- <span style="white-space:pre"> </span>DecimalFormat df5 = new DecimalFormat();
- df5.applyPattern("##.##%");
- System.out.println(df5.format(20.20222));
结果:2020.22%
4、设置最大位数不超过
- DecimalFormat df6 = new DecimalFormat();
- df6.setMaximumIntegerDigits(1);
- System.out.println(df6.format(20.20222));
结果:0.202
- df6.setMinimumIntegerDigits(10);
- out.println(df6.format(20.20222));
结果:0,000,000,020.202
5、设置分组
- DecimalFormat df8 = new DecimalFormat();
- int number = 123456789;
-
- df8.setGroupingSize(3);
- DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance();
-
- dfs.setDecimalSeparator('!');
- dfs.setGroupingSeparator('0');
- df8.setDecimalFormatSymbols(dfs);
- System.out.println(df8.format(2220.20222));
- df8.setGroupingUsed(false);
- System.out.println(df8.format(2220.20222));
结果:20220!202
2220!202
6、三位逗号分隔
- System.out.println(new DecimalFormat(",###").format(123456789.123456));
- System.out.println(new DecimalFormat("这句话是结合文字的,### 元。").format(123456789.123456));
结果:
123,456,789
这句话是结合文字的123,456,789 元。
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
点击打开链接