我试图在我的 python 脚本中做一些计算,但我得到了一些奇怪的结果。例如:
0.03 // 0.01
>>> 2.0
Run Code Online (Sandbox Code Playgroud)
如果我放大数字,我会得到预期的结果:
3.0 // 1.0
>>> 3.0
Run Code Online (Sandbox Code Playgroud)
我很确定第一个代码片段的答案应该是3.0而不是2.0。有人能解释一下为什么会发生这种情况以及如何解决吗?
这是由于浮点错误造成的。请注意,对于上述楼层划分,余数不是0:
0.03 % 0.01
# 0.009999999999999998
Run Code Online (Sandbox Code Playgroud)
因此,如果我们改为除以:
0.03 // 0.009
# 3.0
Run Code Online (Sandbox Code Playgroud)
答案是正确的。因此,由于浮点数的限制,0.03不能被无余0.01数整除
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |