1.在java中比较两个double的数据不能直接比较,否则会丢失精度,我们来写个例子测试一下:
打印结果为:
2.加上String.valueof()
打印结果为:
3.从上图可以看出结果和预期一样,就是我们需要的。可以发现,直接使用Double
类型时,会存在精度的误差,使用Double.toString()
方法可以规避。查看Double
类,可以看到它使用的是FloatingDecimal.toJavaFormatString()
方法,底层基于IEEE 754
标准。
4.总结:在进行浮点数计算时,可使用Double.toString()
方法转换为String
,再使用BigDecimal
进行计算