對於舍入小數(價格),我已經使用.toFixed(2)很長一段時間了。但我最近才發現Javascript不能「精確」地圍繞小數點。我有點震驚,甚至10.005不能正確地圓整到10.01。它剛剛下降到10.00。其他時候它確實圓了。我喜歡控制我的代碼,所以對我來說這是一個很大的禁忌。Javascript .toFixed()更精確的四捨五入替代?
而且由於我正在計算價格,因此我認爲我需要更多(100%)準確的四捨五入的數字,可能是四位十進制數。
是否有沒有簡單的方法在JavaScript中進行基本舍入,正確的方法是什麼?
更新:正如Felix Kling所建議的,將我的價格處理爲美分整數的方法也存在缺點(除了更多的代碼)?
不要使用浮點值的錢小提琴。最簡單的(imo)解決方案是以美分(或使用任何貨幣)計算價格,並根據您的需求格式化價格(例如以美元和美分)。避免以這種方式舍入錯誤。 –
In cents ??必須查找那個! – fishbaitfood
順便說一下,你確定它是'10.005',沒有被正確舍入,而不是'10 * 1.0005'嗎? – raina77ow