2012-09-20 21 views
47

可能重複:
Is JavaScript's Math broken?浮動和使用JavaScript

我計算使用JavaScript和......幾個浮點值的總和,我注意到一個奇怪的東西從來沒有見過之前。執行此代碼:

parseFloat('2.3') + parseFloat('2.4') 

我得到4.699999999999999

那麼...高度重視和我做,以獲得正確的價值? (假設這是不正確...)

+0

我不是說這將有助於解決這個問題。但是我總是喜歡在這樣的時代指出[這篇文章](http://www.codeproject.com/Articles/182416/A-Collection-of-JavaScript-Gotchas) – musefan

+2

爲什麼你認爲浮點運算是精確?嚴重的是,關於浮點不精確性的問題被非常頻繁地發佈,我們應該找出原因並做一些事情。那麼,有人告訴你浮點算術是準確的嗎?你只是假設?你知道你爲什麼這麼做嗎?如果你仔細想想,你將如何實現浮點算法?如果你實施它,它確切嗎?怎麼樣? –

+0

在搜索這個時,我看不出這個問題是如何重複的 - 問題在標記爲重複的問題上沒有解決,並且仍然在整個SO中,我還沒有找到針對相同問題的適當解決方案。 – Malavos

回答

7
(parseFloat('2.3') + parseFloat('2.4')).toFixed(1); 

它會爲您提供解決方案,我想