Java 格式化之DecimalFormat

如题,格式化时保留小数点后2位是0省略,此类需求可以使用 java.text.DecimalFormat

初始化 DecimalFormat 时传 pattern ,根据 pattern 来格式化,

DecimalFormat df1 = new DecimalFormat(yourPatter);
String result =  df1.format(yourString);

常用的 pattern 有这些。

“0.00”

用于 保留小数点后2位,缺位补全 的场景。

  • 保留小数点后两位,不足两位补 0 ;
  • 是两位就保持两位;
  • 超过两位,显示为两位,根据第三位四舍五入。
DecimalFormat df1 = new DecimalFormat("0.00");

System.out.println("df1.format(11):" + df1.format(11));
System.out.println("df1.format(11.1):" + df1.format(11.1));
System.out.println("df1.format(11.11):" + df1.format(11.11));
System.out.println("df1.format(11.119):" + df1.format(11.119));
System.out.println("df1.format(11.1149):" + df1.format(11.1149));
System.out.println("df1.format(11.1191):" + df1.format(11.1191));

结果,

df1.format(11):11.00
df1.format(11.1):11.10
df1.format(11.11):11.11
df1.format(11.119):11.12
df1.format(11.1149):11.11
df1.format(11.1191):11.12

“0.##”

用于 保留小数点后2位,是0省略 的场景。

  • 没有小数点就正常显示;
  • 小数点后有两位,如果最后一位是 0 则省略 ;
  • 小数点后有两位,如果两位都是是 0 则都省略 ;
  • 小数点后超过两位,显示为两位,根据第三位四舍五入;

示例,

        DecimalFormat df2 = new DecimalFormat("0.##");
        System.out.println("df2.format(47):" + df2.format(47));
        System.out.println("df2.format(47.3):" + df2.format(47.3));
        System.out.println("df2.format(47.30):" + df2.format(47.30));
        System.out.println("df2.format(47.98):" + df2.format(47.98));
        System.out.println("df2.format(47.118):" + df2.format(47.118));
        System.out.println("df2.format(47.1119):" + df2.format(47.1119));

运行结果,

df2.format(47):47
df2.format(47.3):47.3
df2.format(47.30):47.3
df2.format(47.98):47.98
df2.format(47.118):47.12
df2.format(47.1119):47.11

“,###”

每3位用 ,分开。

DecimalFormat df3 = new DecimalFormat(",###");
System.out.println("df3.format(123456789):" + df3.format(123456789));

结果

df3.format(123456789):123,456,789
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值