数值计算问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mynamepg/article/details/82383341
BigDecimal计算结果保留两位数的方法
示例:
1、(错误的方法)
BigDecimal val1 = new BigDecimal(1.01).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal val2 = new BigDecimal(2.1);
System.out.println(val1.multiply(val2));
输出结果:2.12100000000000008970602038971264846622943878173828125

2、(错误的方法)
BigDecimal val1 = new BigDecimal(1.01).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal val2 = new BigDecimal(2.1).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(val1.multiply(val2));
输出结果:2.1210

3、(正确的方法)
BigDecimal val1 = new BigDecimal(1.01).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal val2 = new BigDecimal(2.1).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(val1.multiply(val2).setScale(2, BigDecimal.ROUND_HALF_UP));
输出结果:2.12

以上说明乘以、除以后要在最终结果上保留小数位,才能最终保留小数位

猜你喜欢

转载自blog.csdn.net/mynamepg/article/details/82383341