最近在项目的开发过程中,使用 Python 写了一个小工具供测试使用,有一天,测试提过来一个匪夷所思的问题:
小数累加的结果,总是莫名其妙
于是乎,我也打开 Python 的 IDLE 进行测试:
额,看来果然是这样。
通过我的简单思考,觉得应该是计算机底层表示浮点数的精度不准的问题,通过我上网查询相关资料,也证实了我这种猜想。
其中这篇博客写的非常好:
Python:浮点运算的问题与限制
原因找到了,那么问题怎么解决呢?
其实可以这样,比如说你的结果要保留 2 位的精度,那么最后加一个 round 方法进行四舍五入的位数保留即可:
希望这篇博客能为你带来一些帮助:)