【前言】大家先看一个案例:
(案例:)
哈哈哈,是不是觉得很诡异,8.795 四舍五入后还是 8.79! 生产祖传代码当时写这里时没注意,今天导致生产数据出了问题,小伙伴们有经历过吗?就是那种一大堆数据经过一大堆算法算出最终结果来的那个,哎~ 查这种问题最恶心了,中间稍不留神就埋雷了!!!话不多说,我们回顾正题!
产生上面这个问题的原因是什么呢? 是因为BigDecimal 的构造方法中:
这个构造方法没有提供准确转换,传入的 doubel 是存在精度问题的! 与这个构造方法相同情况的还有 下面这个方法!
============================总结=========================================
所以小伙伴们在使用 BigDecimal 时要相当注意这个地方!!!
为了避免有精度问题,直接使用下面这个方法为好:
哈哈哈,这样就不会存在精度问题了~