为什么python floor division运算符的行为是这样的?

时间:2017-09-30 05:13:06

标签: python

为什么python floor division运算符的行为如下? 我遇到了这段代码片段,结果非常令人惊讶。

a = 1 // 10 
b = -1 // 10
print a,b
a= 0
b=-1

打印输出获得的结果为a=0b= -1

为什么a=0b= -1

//进行分区划分,所以它总是四舍五入?

2 个答案:

答案 0 :(得分:6)

Floor函数返回不大于x的最大整数。例如,如果输入为2.25,则输出为2.00。 因此,在-0.1的情况下,小于-0.1的最大整数将为-1。

答案 1 :(得分:3)

Python中的

//是一个"底层部门"运营商。这意味着这种划分的结果是常规划分结果的底限(用/运算符执行)。

给定数字的最大值是小于此数字的最大整数。例如

7 / 2 = 3.5所以7 // 2 = floor of 3.5 = 3

对于负数,它不太直观:-7 / 2 = -3.5so -7 // 2 = floor of -3.5 = -4。同样-1 // 10 = floor of -0.1 = -1

//被定义为与math.floor()做同样的事情:返回小于或等于浮点结果的最大整数值。 零不小于或等于-0.1。