【发布时间】:2014-03-23 12:48:34
【问题描述】:
我正在用 python 编写代码:
1 / -2
结果不是0而是-1,我很困惑。为什么python是这样设计的?其背后的逻辑是什么?
我使用的是 python 2.7.6
【问题讨论】:
-
你为什么期望 0 而不是 -1?
标签: python
我正在用 python 编写代码:
1 / -2
结果不是0而是-1,我很困惑。为什么python是这样设计的?其背后的逻辑是什么?
我使用的是 python 2.7.6
【问题讨论】:
标签: python
Guido 本人在此解释:http://python-history.blogspot.co.uk/2010/08/why-pythons-integer-division-floors.html。
相关sn-p:
有一个很好的数学原因。整数除法运算 (//) 和它的兄弟,模运算 (%),一起满足一个很好的数学关系:
a/b = q 余数为 r
这样
b*q + r = a 和 0
...
考虑使用 POSIX 时间戳(自 1970 年初以来的秒数)并将其转换为一天中的时间。因为一天有 24*3600 = 86400 秒,所以这个计算只是 t % 86400。但是如果我们用负数来表示 1970 年之前的时间,“向零截断”规则将给出毫无意义的结果!使用底线规则一切正常。
【讨论】: