为什么整数除法只截断 python 中的正分子?

Why does integer division truncate only for positive numerators in python?

为什么integer除法在N // D --> N > 0N < D时截断,当N为正时,但当N为负时不截断?

示例12 // 25 = 0

但是 -12 // 25 = 1

这是在python 3.

当然,这里的答案是 Python's integer division floors - 它总是向下舍入。所以一个有启发性的例子是不产生 0 的东西,所以它更明显:

>>> 10 // 3
3
>>> -10 // 3
-4
  • 10/3 = 3.3333...,四舍五入为 3。
  • -10/3 = -3.3333....,四舍五入为 -4。

因此,即使它是一个正小数部分,如 7 // 4,它会产生 1.75,Python 会向下舍入为 1。数学解释在链接的博客 post 中,这只是一个力学解释。