Python:除法<0.1时执行除法与地板除法时的不同结果

标签 python division

我偶然发现了以下差异。除法 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/

相关文章:

python 获取表单数据 这是怎么回事?

java - long/int 除法中的意外结果

python - 在 Python 中除以 3

python - 在 python PIP 中,如何在我的私有(private) pip 索引 "secure and verifiable"中创建文件?

html将页面分成两列并将内容从第一列溢出到第二列

java - 两个整数的 Mod 除法

c++ - 不为 0 则除

python - Eventlet vs Greenlet vs gevent?

python - 更新字典的键和值

python - 用于加密多个文件的多线程或多处理