遇到的小坑,round(10.5)
得到的结果是10,很疑惑,查了一下资料,总结一下:
round的结果跟python版本有关
这是Python 2:
1 | $ python |
这是Python3:
1 | $ python3 |
为什么?
看一下文档:
Values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done away from 0.
这是Python2.7的文档,可以看到这里是真正意义上的四舍六入。但到了Python3就变成了这样:
Values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice.
此时,如果距离两边一样远,会保留到偶数的一边。比如round(0.5)
和round(-0.5)
都会保留到0
,而round(1.5)
会保留到2
。