楼层划分如何在python中运行?

时间:2015-07-15 20:15:20

标签: python python-3.x floor

  1. 5 // 2 = 2;
  2. 5 // 7 = 0;
  3. 5 // - 6 = -1;
  4. 5 // - 2 = -3;
  5. 5 // - 3 = -2;
  6. 5 / -4 = -2;
  7. 有人可以解释这背后的逻辑吗?

3 个答案:

答案 0 :(得分:4)

这总是正确的,忽略了浮点问题:

b*(a // b) + a % b == a

这也总是如此:

((b > 0) == (a % b > 0)) or (a % b == 0)

最后,

abs(a % b) < abs(b)

为了提供这种行为,整数除法向负无穷大舍入,而不是向零。

答案 1 :(得分:3)

地板划分在Python中以数学方式定义。

x // y == math.floor(x/y)

换句话说,x // y是小于或等于x / y

的最大整数

答案 2 :(得分:2)

它的方式:

5 / 2 = 2.5        (2)
5 / 7 = 0.714285   (0)
5 / -6 = −0.8333   (-1 is the integer below -0.833333)
5 / -2 = −2.5      (-3)
5 / -3 = −1.6666   (-2)

这是一个基本的楼层。它除以它,然后使它成为下面的整数。