java中浮点类型数值相加减,精确度损失问题。
Double d = 10.8;
Double e = 10.0;
d-e = 0.8000000000000007;
new BigDecimal(d-e).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();//四舍五入
或者
new BigDecimal("10.8").multiply(new BigDecimal("10.0"));
本文深入探讨了Java中浮点类型数值相加减时出现的精度损失问题,并提供了通过使用BigDecimal类进行四舍五入操作来解决此类问题的方法。
java中浮点类型数值相加减,精确度损失问题。
Double d = 10.8;
Double e = 10.0;
d-e = 0.8000000000000007;
new BigDecimal(d-e).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();//四舍五入
或者
new BigDecimal("10.8").multiply(new BigDecimal("10.0"));
4226

被折叠的 条评论
为什么被折叠?