您的位置 首页 Python

python – 整数除法:对于所有整数a,b,// b == int(a / b)为真吗?

我知道如果数字都是正数,则整数除法将始终返回与浮点结果截断相同的答案.如果其中一个或两个都是否定的,这是真的吗?

我只是想知道是否有一个整数除法表达式会在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中的整数.

关于作者: dawei

【声明】:金华站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

热门文章