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

2021-09-29 02:49:55 字數 1096 閱讀 9031

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引擎對 四捨五入的邊界值處理是不同的

當進製判斷數恰好是5 的時候 谷歌火狐 會執行捨去操作 ie會執行進製操作

/**

* @替換js原生tofixed方法

* @return

*/export

function

ntofixed

(num, s)

if(rest ===5)

elseif(

`$`.

indexof

('.'

)===-1

) cnum =`$

.$` }

}return`$

`}

math.pow() 方法可返回 x 的 y 次冪的值。

math.pow(10,2) 返回 10 的 2次冪 100

parseint() 函式可解析乙個字串,並返回乙個整數。

parseint(string, radix)

string: 必需。要被解析的字串。

radix:

可選。表示要解析的數字的基數。該值介於 2 ~ 36 之間。

如果省略該引數或其值為 0,則數字將以 10 為基礎來解析。如果它以 「0x」 或 「0x」 開頭,將以 16 為基數。

如果該引數小於 2 或者大於 36,則 parseint() 將返回 nan。

parsefloat() 函式可解析乙個字串,並返回乙個浮點數。

parsefloat(string)

parsefloat(2.334)

參考鏈結

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方法四捨五入修正,保證沒問題

當我們想修正此方法時,變成四捨五入時,網上搜到的方法都是這種,但是下面的這個方法是有問題的 number.prototype.tofixed function b else if this 0 else 如果不信,可以試下用上面的來改寫,然後試試這個 266.215.tofixed 2 結果肯定不是...

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

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