js toFixed()方法的重寫實現(xiàn)精度的統(tǒng)一
更新時間:2014年03月06日 11:25:24 作者:
凡用過js 中的toFix() 方法的, 應(yīng)該都知道這個方法存在一個小小的BUG,在IE 下和FF 下對于小數(shù)的進位有點不同
但凡用過js 中的toFix() 方法的, 應(yīng)該都知道這個方法存在一個小小的BUG。
在IE 下和FF 下對于小數(shù)的進位有點不同。
例如( 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.
我們需要對這個方法做進一步的處理。
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ù)的進位有點不同。
例如( 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.
我們需要對這個方法做進一步的處理。
復(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)文章
JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉樹的刪除算法示例
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉樹的刪除算法,簡單分析了javascript刪除數(shù)據(jù)結(jié)構(gòu)中二叉樹節(jié)點時所遇到的各種情況與相關(guān)的處理原理與算法實現(xiàn)技巧,需要的朋友可以參考下2017-04-04
JavaScript實現(xiàn)將數(shù)組中所有元素連接成一個字符串的方法
這篇文章主要介紹了JavaScript實現(xiàn)將數(shù)組中所有元素連接成一個字符串的方法,涉及javascript中采用join方法進行數(shù)組轉(zhuǎn)化的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
JavaScript如何實現(xiàn)組合列表框中元素移動效果
在頁面中有兩個列表框,需要把其中一個列表框的元素移動到另一個列表框,怎么實現(xiàn)此功能呢,下面通過本文給大家介紹JavaScript如何實現(xiàn)組合列表框中元素移動效果,感興趣的朋友一起學(xué)習(xí)吧2016-03-03

