java Double计算出现精度问题

在使用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()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容