java中浮点类型数值相加减,精确度有关问题

java中浮点类型数值相加减,精确度问题

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"));