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