2 newdreamyang NewDreamYang 于 2017.09.11 11:35 提问

DecimalFormat格式话小数问题

DecimalFormat fnum = new DecimalFormat("#,##0.00");
System.out.println(fnum.format(12345.1));
输出:12,345.10 这是想要的结果,保留了两位小数位
System.out.println(fnum.format(1));
输出:1.00 想要的结果是,整数或者0的时候就直接输出,不要有小数位。不对这个结果数字处理,有没有直接的办法

2个回答

pcsuccess
pcsuccess   2017.09.11 11:42

这个需要自己处理一下,传入给format方法之前先判断一下是否为整数,如果为整数使用DecimalFormat("#,##0");

qq_37192576
qq_37192576   2017.09.11 14:32
    double d = 12345.1;
    BigDecimal bigDecimal = new BigDecimal(d).setScale(2, RoundingMode.HALF_UP);
    System.out.println(bigDecimal);
NewDreamYang
NewDreamYang 回复qq_37192576:是整数或者0的时候就直接输出,要不然0.00不好看
2 个月之前 回复
qq_37192576
qq_37192576 回复YangJXDream: 楼主不是要四舍五入保留两位小数的么
2 个月之前 回复
NewDreamYang
NewDreamYang 这只是一个四舍五入保留俩位小数
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片