为什么python地板分割操作符是这样的呢?我看到了这个代码片段,结果非常令人惊讶。
a = 1 // 10
b = -1 // 10
print a,b
a= 0
b=-1
打印输出结果为a=0
和b= -1
。
为什么a=0
和b= -1
//
做地板分割,所以它总是四舍五入?
发布于 2017-09-29 21:37:15
Python中的//
是一个“楼层划分”操作符。这意味着这种除法的结果是常规除法结果的下限(与/运算符一起执行)。
给定数的地板是比这个数小的最大整数。例如
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.
发布于 2017-09-29 21:15:31
地板函数返回不大于x的最大整数。例如,如果输入为2.25,则输出为2.00。因此,如果-0.1最大整数小于-0.1,则为-1。
https://stackoverflow.com/questions/46499781
复制相似问题