1
为什么呢?为什么这种奇怪的'round'内置的行为。(python 2.6)
>>> round(2/3)
0.0
>>> round(0.66666666666666666666666666666667)
1.0
>>> round(2.0/3)
1.0
为什么呢?为什么这种奇怪的'round'内置的行为。(python 2.6)
>>> round(2/3)
0.0
>>> round(0.66666666666666666666666666666667)
1.0
>>> round(2.0/3)
1.0
这并不奇怪行为从round()
:
试试这个:
>>> 2/3
0
使用带有两个整数值的/
将执行整数除法。所以参数到round()
是已经 0,这使得round()
返回0
更新:2/3
会做一个浮点除法为2.0/3
确实在Python 2:为@马克的评论,this behaviour changed in Python 3注意。2//3
可用于在两个版本上获得整数除法行为)。
你的最后一个例子工程,因为2.0
不是整数,所以2.0/3
会做一个“propper”浮点除法:
>>> 2.0/3
0.6666666666666666
感谢您的快速回复 – Jibin 2011-05-23 08:58:34
注意这是蟒蛇1.x和2真.x但python> - 3已经改变了这个,所以2/3给出0.6666666666666666参见 –
Mark
2011-05-23 08:59:22