保留2位小数,使用java.text.NumberFormat

[记录]

1.保留小数

保留两位小数,java方式,使用NumberFormat来实现,结果四舍五入

        double sourcePrice = 4940.20;// sourcePrice = 1514940.20
        double reductionPrice = 0.1;
        double price = sourcePrice - reductionPrice;
        NumberFormat nf = NumberFormat.getNumberInstance();

        // notice here

        nf.setMaximumFractionDigits(2);
        System.out.println(nf.format(price));

输出结果:
(结果中看到是一位,其实是默认去掉了最后一位的0。
即4940.10,最终显示4940.1;
如果计算结果是4940.00,那么最终是4940;)

4,940.1

.

1,514,940.1


2.分隔符

注意上面结果的分隔符,千位分隔符,百万分隔符,……),使用时会直接显示出分隔符,如果想去掉,则使用
nf.setGroupingUsed(false);

输出结果则变成了(无分隔符):

4940.1

.

1514940.1


3.其他方法实现

double number = 12345.5593;// 目标值
System.out.println("---计算-保留2位小数-BigDecimal----------四舍五入--------------");

BigDecimal bigDecimal = new BigDecimal(number);
double resNumber = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(resNumber);


System.out.println("---计算-保留2位小数-DecimalFormat--------四舍五入----------------");
DecimalFormat decimalFormat = new DecimalFormat("#.00");
System.out.println(decimalFormat.format(number));

System.out.println("---计算-保留2位小数-String.format--------四舍五入----------------");
System.out.println(String.format("%.2f", number));

输出结果:

12345.55

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值