负整数除法令人惊讶的结果
在我的应用程序中,我遇到了以下问题,并对结果感到惊讶:
8/-7=-2
(两个整数)。
这是什么意思?
-
对于实际值,即
8.0/(-7.0)
结果为-1.143
。您使用整数除法得到的结果将向下舍入为的更负值
-2
。(也称为“地板部门”)这就是为什么您会得到以下令人困惑的答案的原因:
>>> 8/(-7) -2 >>> 8/7 1
注: 这是在Python 3中,其中的结果,“固定”
8/(-7)
是-1.143
。因此,如果您没有理由使用Python 2,则应该升级。;)在Python 3中,如果仍然需要整数除法,则可以使用
//
运算符。这将为您提供与8/(-7)
Python 2相同的答案。这是关于此主题的Python增强建议:PEP 238-更改除法运算符