天天看點

toFixed方法重寫,toFixed四舍五入在數值很小時的精度問題

先上重寫代碼:

Number.prototype.toFixed = function(s) {
            var changenum = (parseInt(this * Math.pow(10, s) + 0.5) / Math.pow(10, s)).toString();
            index = changenum.indexOf(".");
            if (index < 0 && s > 0) {
                changenum = changenum + ".";
                for (i = 0; i < s; i++) {
                    changenum = changenum + "0";
                }

            } else {
                index = changenum.length - index;
                for (i = 0; i < (s - index) + 1; i++) {
                    changenum = changenum + "0";
                }

            }

            return changenum;
        } 
           

問題環境:1、 在對數值0.005進行四舍五入保留2為數字時,在ie8會發現0.005.toFixed(2)=0.00  

2、在toFixed使用小數點後為0的數字都被忽略, 沒有保留0作為小數位

相關文章:

js處理數字保留2位小數,強制保留2位小數不夠補上.00

數字格式化,格式數字保留2位小數點,格式數字自定義保留n位小數點

js數字金額大寫轉換

繼續閱讀