JS的toFixed方法四捨五入修正,保證沒問題

2021-09-29 17:48:45 字數 680 閱讀 8658

當我們想修正此方法時,變成四捨五入時,網上搜到的方法都是這種,

但是下面的這個方法是有問題的

number.prototype.tofixed = function(b) 

} else

}if (this < 0) else

};

如果不信,可以試下用上面的來改寫,然後試試這個  266.215.tofixed(2) 結果肯定不是266.22 你得到的是 266.21

上面的這個方法問題出在   +0.5  這個地方。

所以我們換種方式來進行小數字格式化

number.prototype.tofixed=function (d) )?)\\d*$").test(s))else break;}}

s=a.join("").replace(new regexp("(\\d+)(\\d)\\d$"),"$1.$2");

}if(b)s=s.substr(1);

return (pm+s).replace(/\.$/,"");

}return this+"";

};

經過我時間和實際場景的多次測試發現,這個可以解決上述問題的

這裡還要多感謝 這位老兄,讓我找了很多地方也實驗了很多方法,才得出這位老兄的方法是完全正確的

借鑑位址

JS中的toFixed 四捨五入方法

方法一 在js中四捨五入的函式 tofixed n n為要保留的小數字數。n為0 20,當n超過20的時候,js會出錯。如果小數點前和要擷取的前一位都是0時,不會按常理擷取。var h 0.07 h.tofixed 1 的值為0.0其實要解決這個問題,原來是不一定要重寫js中的number型別的to...

JS的toFixed的四捨五入精準問題

1.谷歌瀏覽器 55.0.2883.87 m 2.火狐瀏覽器 44.0.2 3.ie瀏覽器 11.545.10586.0 var num 3.445 console.log num.tofixed 2 1.谷歌 3.44 2.火狐 3.44 3.ie 3.45 不同瀏覽器的js引擎對 四捨五入的邊界...

js之toFixed()四捨五入丟失精度的問題解決

1 tofixed方法 tofixed 方法可把 number 四捨五入為指定小數字數的數字。例如將資料num保留2位小數,則表示為 tofixed num 但是其四捨五入的規則與數學中的規則不同,使用的是銀行家捨入規則,銀行家捨入 所謂銀行家捨入法,其實質是一種四捨六入五取偶 又稱四捨六入五留雙 ...