首页 > 解决方案 > 为什么 Python 3 中这个简单的整数除法给我的答案比预期的少一个?

问题描述

Python 3. 我有这个命令->

int(29930125722068957199361/65537)

我得到 456690506463050752,但答案应该是 456690506463050753

哦,这只发生在 Python 3+ 中,而不是在 Python 提示符下直接执行时

标签: python

解决方案


这可能是因为浮点错误。浮点数在内存中的大小有限,只能对某些值如此准确。

相反,使用//(floor division) 运算符以获得准确的结果:

print(29930125722068957199361 // 65537)
# 456690506463050753

推荐阅读