我知道如果数字都是正数,则整数除法将始终返回与浮点结果截断相同的答案.如果其中一个或两个都是否定的,这是真的吗?
我只是想知道是否有一个整数除法表达式会在Python 2和Python 3中返回相同的结果(是的,我从__future__ import division中知道).
附:我们暂时忽略浮点溢出.
解决方法
在Python 3中不是这样,你可以自己测试它:
>>> int(-1/3) == -1//3 False
分别给出q(商)和r(余数)的a和b的整数除法和模数将总是返回满足b * qr == a和(a * b)> 0 == q> 0的数字(即a * b)和q具有相同的符号)和abs(r)< ABS(Q).如果q是浮点数,则表达式int(q)总是向0舍入. 除非你使用__future__ import division,否则它总是适用于Python 2,但那是因为a / b == a // b如果a和b是Python 2中的整数.