2013-05-30 18 views
-2

當我在IRB控制檯添加兩個浮體,未如預期增加兩個紅寶石的浮給出意想不到的結果

10.43 + 4.56 # should be 14.99 

的結果,但實際的結果是

irb(main):001:0> 10.43+4.56 
=> 14.989999999999998 

是什麼原因造成的?

+3

問一個Bazillion次!搜索浮點精度和/或表示 –

+1

@MitchWheat可以請你發佈一個鏈接? – Arjan

+1

不,您如何嘗試搜索併發布鏈接!這並不難! –

回答

2

這是預期的行爲。浮點數不能保證精度,因爲簡而言之,計算機是二進制系統(截至2013年),無法正確表示小數值。這就是爲什麼你會得到「意想不到的」結果,實際上這是它的工作原理,直到有一個非二進制機器可以正確表示小數值。

+0

@MitchWheat TIL二進制系統可以正確表示分數。當然,除非你的意思是小數點前一位和後一位。時間去看看似乎做了一些研究。 – Woot4Moo

相關問題