java Double计算出现精度问题
2018-10-29 本文已影响0人
宽宽侠
在使用double进行浮点数运算时会出现精度问题,因为这是科学计算得出的结果而不是我们想要的结果
'''
System.out.println(478d * 0.95d);
结果
454.09999999999997
'''
这是就要使用BigDecimal这个类进行计算了
'''
加法
new BigDecimal(Double.toString(478d)).add(new BigDecimal(Double.toString(0.95d))).doubleValue()
减法
new BigDecimal(Double.toString(478d)).subtract(new BigDecimal(Double.toString(0.95d))).doubleValue()
除法
new BigDecimal(Double.toString(478d)).divide(new BigDecimal(Double.toString(0.95d))).doubleValue()
乘法
new BigDecimal(Double.toString(478d)).multiply(new BigDecimal(Double.toString(0.95d))).doubleValue()