2011-05-23 68 views
7

我測試了一些我的代碼,在javascript中我加了.1 + .2,它給了我.30000000000000004而不是.3。我不明白這一點。 但是當我添加.1 + .3時,它給了我.4。我google了一下,找到了一些關於Double Precision的內容。但我不知道它是什麼。幫助在雙精度加

回答

14

這裏的強制性鏈接:What Every Computer Scientist Should Know About Floating-Point Arithmetic

基本上,有一些不能在大多數計算機使用的浮點格式精確表示,許多基地10個號碼,所以你會得到像你強調的那些問題。

+0

+1不錯的文章:) – alex 2011-05-23 06:26:59

+2

:)我想我已經閱讀過20%的一百遍......有一天我可以保持清醒。 – sje397 2011-05-23 06:28:25

+0

它是一篇大文章,如果你讀過它,你能告訴我這個本質嗎? – 2011-05-25 08:58:44

2

如果你不能保持清醒狀態每個計算機科學家應該知道的關於浮點運算的問題,請嘗試改爲javascript-Rounding in JavaScript