先來個例子看下結果
let num0 = 0.864
let num1 = 0.865
let num2 = 0.866
console.log(num0.toFixed(2))
console.log(Math.round(num0 * 100) / 100)
console.log(num1.toFixed(2))
console.log(Math.round(num1 * 100) / 100)
console.log(num2.toFixed(2))
console.log(Math.round(num2 * 100) / 100)
它們計算出來的值是有區別的,然後查閱了下文檔看下他們具體的區別。
Math.round()
這種四捨五入就是我們正常數學中用的那種四捨五入:有效數位後一位如果是小於5就捨去,如果是大於或等於5就入1
toFixed
toFixed採用的是四捨六入五成雙:對於位數很多的近似數,當有效位數確定後,其後面多餘的數字應該捨去,只保留有效數字最末一位,這種修約(舍入)規則是“四捨六入五成雙”,也即“4舍6入5湊偶”,這裏“四”是指≤4 時捨去,"六"是指≥6時進上,"五"指的是根據5後面的數字來定,當5後有數時,舍5入1;當5後無有效數字時,需要分兩種情況來講:
(1)5前爲奇數,舍5入1;
(2)5前爲偶數,舍5不進(0是偶數)。