我偶然发现了以下差异。除法 50/0.02 返回一个 float :
2500.0
然而,楼层划分 50//0.02 返回 - 在我看来 - 错误的答案:
2499.0
谁能解释一下这种差异是如何造成的?
最佳答案
这是由于Python的浮点精度问题造成的。 0.02
实际上是 Martijn Pieters 所建议的 0.02000000000000000041633363423443370265886187553405762
,因此除以 50 后得到的值类似于 2499.999999999999994795875
code>,并且通过楼层划分,该值为落地并变为 2499
。
看看the python docs更好地理解Python中的 float
关于Python:除法<0.1时执行除法与地板除法时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24057694/