我试图在Python 3.5.2中执行此操作:
int(204221389795918291262976/10000)
但得到了意想不到的结果:20422138979591827456
它在Python 2.7.12中运行良好,结果是:20422138979591829126L
任何想法为什么Python 3给了我错误的结果?
答案 0 :(得分:6)
在python 3中,你必须明确地使用整数除法//
,否则浮点除法将适用于2个整数。
这是python 2和python 3之间的主要变化之一
在你的例子中:(将在python 2和python 3中工作,因此它向后兼容!)
204221389795918291262976//10000
20422138979591829126
(您甚至不需要在此转换为int
,结果为int
,因为这两个字词均为int
)
顺便说一句,如果你想让这个bug与python 2一起工作,那么它也是可能的:)
from __future__ import division