2016-02-21 20 views
3

有人可以詳細爲什麼在Python 2.710.3%,2.5印刷品0.3 0.3000000000000007

10.3 % 2.5 => 0.3 

,並在Python 3.0版畫0.3000000000000007(可能是由於代表問題)

,此外,10.3 % 2.5 - 0.3打印請解釋7.216449660063518e-16在這兩個蟒蛇。

錯誤我可以想象是由於浮動表示,但爲什麼打印行爲的變化和什麼可以做到避免它時,將程序從2到3?

回答

0

針對您的問題的解決方案是使用round,因此始終可以保證您的浮標的預定精度。所以你的等式會變成

round(10.3 % 2.5, 1) 

哪個會在所有版本中返回0.3