2012-10-25 52 views
0

運行紅寶石1.8.7。Rails 3浮動舍入錯誤

(1.005 * 100).round 結果:100

(1.006 * 100).round 結果:101

100.5.round 結果:101

(1.005 * 100) 結果:100.5

這是怎麼回事?有人可以在最新版本的ruby中嘗試這個嗎? 謝謝!

回答

0

浮點數學是怎麼回事。

對於最後一個,我沒有得到100.5,而你不是要麼,即使由於某種原因,它顯示爲:

Loading development environment (Rails 3.2.8) 
1.9.3p194 :001 > (1.005 * 100).round 
=> 100 
1.9.3p194 :002 > (1.006 * 100).round 
=> 101 
1.9.3p194 :003 > 100.5.round 
=> 101 
1.9.3p194 :004 > (1.005 * 100) 
=> 100.49999999999999 
+0

謝謝!當我在控制檯中輸入(1.005 * 100)時,它確實在我的系統上返回100.5)謝謝 - 我想這是很清楚的。看起來我現在有一些重構要做! – vanboom