为什么这样?
>>> round(2/3)
0.0
>>> round(0.66666666666666666666666666666667)
1.0
>>> round(2.0/3)
1.0
答案 0 :(得分:16)
round()
:
试试这个:
>>> 2/3
0
将/
与两个整数值一起使用将执行整数除法。所以参数到round()
已经 0,这使得round()
返回0。
更新,正如@Mark在评论中指出的那样,this behaviour changed in Python 3:2/3
将在{2}中执行浮点除法。2.0/3
在Python 2中执行。{{ 1}}可用于在两个版本上获得整数除法行为。)
您的上一个示例有效,因为2//3
不是整数,因此2.0
将执行“propper”浮点除法:
2.0/3