js toFixed()方法的重寫實現(xiàn)精度的統(tǒng)一
更新時間:2014年03月06日 11:25:24 作者:
凡用過js 中的toFix() 方法的, 應(yīng)該都知道這個方法存在一個小小的BUG,在IE 下和FF 下對于小數(shù)的進(jìn)位有點不同
但凡用過js 中的toFix() 方法的, 應(yīng)該都知道這個方法存在一個小小的BUG。
在IE 下和FF 下對于小數(shù)的進(jìn)位有點不同。
例如( 0.005)在ie 下 toFix(2)=0.00. 在FF 下 toFix(2)=0.01.
這樣就會造成數(shù)據(jù)的差異。
我們可以通過 重寫 這個方法來實現(xiàn)精度的統(tǒng)一。
Number.prototype.toFixed = function(s)
{
return (parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
}
但是這樣做仍然有一個問題, 在所有的瀏覽器下, String("0.050").toFix(2)=0.1
我們可以看到這樣你原本要保留兩位小數(shù)卻變成了一位。 也就是說。這個重寫只有的toFixed() 會自動舍棄最后的0.
我們需要對這個方法做進(jìn)一步的處理。
Number.prototype.toFixed = function(s)
{
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;
}
在IE 下和FF 下對于小數(shù)的進(jìn)位有點不同。
例如( 0.005)在ie 下 toFix(2)=0.00. 在FF 下 toFix(2)=0.01.
這樣就會造成數(shù)據(jù)的差異。
我們可以通過 重寫 這個方法來實現(xiàn)精度的統(tǒng)一。
復(fù)制代碼 代碼如下:
Number.prototype.toFixed = function(s)
{
return (parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
}
但是這樣做仍然有一個問題, 在所有的瀏覽器下, String("0.050").toFix(2)=0.1
我們可以看到這樣你原本要保留兩位小數(shù)卻變成了一位。 也就是說。這個重寫只有的toFixed() 會自動舍棄最后的0.
我們需要對這個方法做進(jìn)一步的處理。
復(fù)制代碼 代碼如下:
Number.prototype.toFixed = function(s)
{
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;
}
相關(guān)文章
layui 選擇列表,打勾,點擊確定返回數(shù)據(jù)的例子
今天小編就為大家分享一篇layui 選擇列表,打勾,點擊確定返回數(shù)據(jù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
動態(tài)的創(chuàng)建一個元素createElement及刪除一個元素
本文用示例為大家介紹下動態(tài)創(chuàng)建一個元素createElement及刪除一個元素,感興趣的朋友可以參考下2014-01-01
JS+CSS實現(xiàn)大氣的黑色首頁導(dǎo)航菜單效果代碼
這篇文章主要介紹了JS+CSS實現(xiàn)大氣的黑色首頁導(dǎo)航菜單效果代碼,涉及JavaScript基于鼠標(biāo)事件實現(xiàn)頁面樣式動態(tài)切換的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09
Javascript類型系統(tǒng)之String字符串類型詳解
這篇文章主要介紹了Javascript類型系統(tǒng)之String字符串類型詳解的相關(guān)資料,需要的朋友可以參考下2016-06-06

