这个问题在这里已有答案:
Python 3.6.3中的round
函数有什么问题?我测试了下面的代码:
a = 0.5
b = 0.5000001
print (round(a),round(b))
..得到结果为
0 1
所以圆形0.5
- > 0
但0.500001
- > 1
。两个变量都应该得到1
的值吗?
它在docs中描述:
如果省略ndigits或者为None,则返回其输入的最接近的整数。
对于支持round()的内置类型,将值四舍五入为函数减去ndigits的最接近的10的倍数;如果两个倍数相等,则向均匀选择进行舍入(例如,圆形(0.5)和圆形(-0.5)都是0,圆形(1.5)是2)。
两个变量都不会获得值1.因为范围从0.0000000到0.5000000之间的值将四舍五入为0,但是当您在0.5之后增加任何十进制位时它将四舍五入为1。