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