Java基础——数据显示处理 DecimalFormat+BigDecimal

1、保留两位小数,末尾是0仍然显示,不足补0

[java]  view plain  copy
  1. DecimalFormat df1 = new DecimalFormat("0.00");  
  2. System.out.println(df1.format(20.20222));  
结果:20.20

[java]  view plain  copy
  1. DecimalFormat df3 = new DecimalFormat("000.000000");  
  2. System.out.println(df3.format(20.20222));  
结果:020.202220

2、保留两位小数,如果末尾是0则舍去

[java]  view plain  copy
  1. DecimalFormat df2 = new DecimalFormat("#.##");  
  2. out.println(df2.format(20.20222));  
结果:20.2

[java]  view plain  copy
  1. DecimalFormat df4 = new DecimalFormat("###.########");  
  2. System.out.println(df4.format(20.20222));  
结果:20.20222

3、设置含%

[java]  view plain  copy
  1. <span style="white-space:pre">    </span>DecimalFormat df5 = new DecimalFormat();  
  2.     df5.applyPattern("##.##%");  
  3.     System.out.println(df5.format(20.20222));  
结果:2020.22%


4、设置最大位数不超过

[java]  view plain  copy
  1. DecimalFormat df6 = new DecimalFormat();  
  2. df6.setMaximumIntegerDigits(1);  
  3. System.out.println(df6.format(20.20222));  
结果:0.202

[java]  view plain  copy
  1. df6.setMinimumIntegerDigits(10);// 设置整数部分最小长度,不够0补  
  2. out.println(df6.format(20.20222));  
结果:0,000,000,020.202


5、设置分组

[java]  view plain  copy
  1. DecimalFormat df8 = new DecimalFormat();  
  2. int number = 123456789;  
  3. // 设置三个一组  
  4. df8.setGroupingSize(3);  
  5. DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance();  
  6. // 设置小数字分隔符  
  7. dfs.setDecimalSeparator('!');  
  8. dfs.setGroupingSeparator('0');  
  9. df8.setDecimalFormatSymbols(dfs);  
  10. System.out.println(df8.format(2220.20222));  
  11. df8.setGroupingUsed(false);  
  12. System.out.println(df8.format(2220.20222));  

结果:20220!202
            2220!202

6、三位逗号分隔

[java]  view plain  copy
  1. System.out.println(new DecimalFormat(",###").format(123456789.123456));         
  2. 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则向下舍
点击打开链接


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值