版权声明:本文为博主原创文章,未经博主允许不得转载。 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
以上说明乘以、除以后要在最终结果上保留小数位,才能最终保留小数位