前端— toFixed() 的精度問題

daxuesheng發表於2021-09-09

之前的專案裡涉及到了金額的計算,要求保留兩位小數或4位小數,一直是採用原生的Number物件的原型物件上的toFixed()方法來計算的。直到有一天測試提了Bug,反覆驗證後發現,用 tofixed 來保留n位小數在某種情況下確實會出精度問題,真叫人頭大 (ÒωÓױ)!!!

下面進行測試

let num = 1.234
num.toFixed(2) //1.23 正確

let num = 1.235
num.toFixed(2) //1.24 正確

let num = 1.236
num.toFixed(2) //1.24 正確

let num = 0.234
num.toFixed(2) //0.23 正確

let num = 0.235
num.toFixed(2) //0.23 錯誤 X

let num = 0.236
num.toFixed(2) //0.24 正確

也就是說,當num

可以用 $toFixed(num,n) 方法來代替num.toFixed(n) :

$tofixed (num, n) {
    var symbol = 1
    if (num 

有什麼問題,歡迎大家指出。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2805158/,如需轉載,請註明出處,否則將追究法律責任。

相關文章