我正在處理相對較小且簡單的數字。我第一次試圖做出四捨五入(數字後2個符號)與臭名昭着的toFixed。這是一個已知的問題:有時它不正確。但讓我印象深刻的是,它也可以不一致:JS中的舍入:不一致和意外的行爲
(0.395).toFixed(2); // "0.40"
(0.295).toFixed(2); // "0.29"
這些數字都非常相似,數字後3個跡象,但不同的行爲。
所以,我決定切換到使用Math.round。不久,我遇到了另一個問題:
Math.round(0.35055 * 10000)/100; // produces 35.05 instead of 35.06
Math.round也有問題嗎?那麼,應該使用什麼方法?
FWIW最後一個問題發生在Math.round之前:'0.35055 * 10000' - >'3505.4999999999995' –
爲什麼'0.35055 * 1000'等於'3505.4999999999995'而不是'3505.5'? – Manav
檢查這些答案:[這裏](https://stackoverflow.com/q/5490687/1823841),[這裏](https://stackoverflow.com/q/10768083/1823841) –