python - 为什么 Python 3 中这个简单的整数除法给我的答案比预期的少一个?
问题描述
Python 3. 我有这个命令->
int(29930125722068957199361/65537)
我得到 456690506463050752,但答案应该是 456690506463050753
哦,这只发生在 Python 3+ 中,而不是在 Python 提示符下直接执行时
解决方案
这可能是因为浮点错误。浮点数在内存中的大小有限,只能对某些值如此准确。
相反,使用//
(floor division) 运算符以获得准确的结果:
print(29930125722068957199361 // 65537)
# 456690506463050753
推荐阅读
- javascript - 除非我在调试器中遍历代码,否则 iframe 似乎不会更新 src
- python - scipy.solve_ivp:在第二次发生事件时终止轨迹
- reactjs - 基于函数参数的条件类型检查
- python - Python 中的文本冒险游戏 - 从具有加权属性的文本文件中创建随机选择的项目
- c++ - 是 %x printf 说明符的 long OK 类型的参数吗?
- javascript - javascript FullCalendar eventClick info.jsEvent.preventDefault(); 无法正常工作
- azure - Azure DevOps Wiql API 将字段添加到响应工作项
- android - 错误:无法访问 com.google.firebase.internal.InternalTokenProvider 的 InternalTokenProvider 类文件未找到
- ios - 将 UIViews 或结构数组传递给 UIViewController
- join - 使用文本文件中的键在 Oracle (12.1) 表中查找数据