为什么python floor division运算符的行为如下? 我遇到了这段代码片段,结果非常令人惊讶。
a = 1 // 10
b = -1 // 10
print a,b
a= 0
b=-1
打印输出获得的结果为a=0
和b= -1
。
为什么a=0
和b= -1
?
//
进行分区划分,所以它总是四舍五入?
答案 0 :(得分:6)
Floor函数返回不大于x的最大整数。例如,如果输入为2.25,则输出为2.00。 因此,在-0.1的情况下,小于-0.1的最大整数将为-1。
答案 1 :(得分:3)
//
是一个"底层部门"运营商。这意味着这种划分的结果是常规划分结果的底限(用/运算符执行)。
给定数字的最大值是小于此数字的最大整数。例如
7 / 2 = 3.5
所以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。