问题描述
|
为什么这样 ?
>>> round(2/3)
0.0
>>> round(0.66666666666666666666666666666667)
1.0
>>> round(2.0/3)
1.0
解决方法
从
round()
开始,这并不是奇怪的行为:
尝试这个:
>>> 2/3
0
对两个整数值使用/
将进行整数除法。因此,round()
的参数已经为0,这使round()
返回0。
更新:正如@Mark在注释中指出的,此行为在Python 3中已更改:2/3
将像Python 9中的2.0/3
一样进行浮点除法。2//3
可用于在两个版本上获得整数除法行为)。
您的最后一个示例有效,因为2.0
不是整数,所以2.0/3
将执行\“ prop \\”浮点除法:
>>> 2.0/3
0.6666666666666666