2015-06-07 64 views
2

3我是新來的Python和同時與運營商進行試驗,我碰到這樣的:司通過在Python

>>> 7.0/3 
2.3333333333333335 

不宜結果是2.3333333333333333也許2.3333333333333334。爲什麼以這種方式四捨五入?

此外,關於地板師在Python 2.7我的結果是:

>>> 5/2 
2 
>>> 5 // 2 
2 
>>> 5.0/2 
2.5 
>>> 5.0 // 2 
2.0 

所以我的看法是,地板師返回整數商甚至在浮點數的情況下,而正常分裂返回十進制值。這是真的?

+5

請參閱[浮點算術:問題與侷限](http://docs.python.org/3/tutorial/floatingpoint.html)和/或[每個程序員應該知道的浮點算術]( http://floating-point-gui.de/)。 –

+0

欲瞭解更多信息,請參閱https://docs.python.org/3/library/decimal.html。 – Roope

+0

此外,自Python 2以來,Python 3的分割運算符發生了一些變化:http://python3porting.com/differences.html#integer-division – Unit03

回答

3

看看這個0.30000000000000004.com

你的語言不破,它做浮點運算。計算機只能本地存儲整數,所以它們需要一些表示十進制數的方法。這種表示有一定程度的不準確。這就是爲什麼,往往是,.1 + .2!= .3。