2017-09-30 168 views
1

python floor division operator为什么会这样? 我遇到这个代码片段,结果是相当令人惊讶的。为什么python floor division运算符的行为如此呢?

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

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

为什么a=0b= -1

//做底板划分,所以它总是四舍五入?

+1

是的,“地板”的意思是“下”。 –

+3

在我的国家,地板倒塌,天花板上升;我们发现这比其他安排更方便。 ;) –

+1

它是标准数学的直接结果:地板操作员向下舍入到下一个整数。所以楼层(3.9)等于楼层(3.1)等于3,楼层(-3.9)等于楼层(-3.1)等于-4。你会在整个计算机语言和库中找到这个定义。 –

回答

2

//在Python中是一个“floor division”操作符。这意味着这种划分的结果是定期划分结果的底线(由/运营商执行)。

给定数字的底板是比这个数字小的最大整数。例如

7/2 = 3.5 so 7 // 2 = floor of 3.5 = 3

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

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

6

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

相关问题