【问题标题】:Problems of dividing by a negative number in pythonpython中除以负数的问题
【发布时间】:2014-03-23 12:48:34
【问题描述】:

我正在用 python 编写代码:

1 / -2

结果不是0而是-1,我很困惑。为什么python是这样设计的?其背后的逻辑是什么?

我使用的是 python 2.7.6

【问题讨论】:

标签: python


【解决方案1】:

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 年之前的时间,“向零截断”规则将给出毫无意义的结果!使用底线规则一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    相关资源
    最近更新 更多