2011-08-23 69 views
4

我已經創建了功能按鈕點擊後:jQuery,javascript - 如何添加十進制數字?

var cena_poczatkowa = parseFloat($("#cena_aktualna").text()); 
    var cena_dodana = cena_poczatkowa + 1.01; 
    $("span#cena_aktualna").text(cena_dodana); 

和跨度在HTML:

<span id="cena_aktualna">0.00</span> 

一切工作正常,每次點擊數跨度變更後:1.01,1.02。 但第三次點擊後,我看到3.0300000000000002。 第四次點擊後,我再次正確地看到4.04。 爲什麼在第三次點擊後我看到這個奇怪的數字?

這是我的工作腳本,所以你可以看到這個錯誤:http://jsfiddle.net/H3pfH/

+1

可能的重複(http://stackoverflow.com/questions/1458633/elegant-workaround-for-javascript-floating-point-number-problem)。 – maerics

回答

5

由於浮點運算本質上是不準確的,請嘗試使用toFixed()到它送到合適的位數:

var cena_dodana = (cena_poczatkowa + 1.01).toFixed(4);

http://jsfiddle.net/H3pfH/1/

+1

使用'toFixed()'+1,但我建議在需要顯示結果時修復它,而不是在計算數字數據時修改它,如下所示:'$(「span#cena_aktualna」)。text (cena_dodana.toFixed(2));' – Cipi

+0

好點。這一切都取決於代碼中其他地方使用的數字。在這種情況下,我寧願立即舍入它,因爲它糾正了一個錯誤並使結果*更正確。如果我正在採取平方根或其他計算方法,並希望產生一個十進制小數值,那麼我會在最後進行舍入。 – Blazemonger

相關問題