js四捨五入,toFixed和Math.round的區別

先來個例子看下結果

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是偶數)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章