欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js toFixed()方法的重寫實(shí)現(xiàn)精度的統(tǒng)一

 更新時(shí)間:2014年03月06日 11:25:24   作者:  
凡用過js 中的toFix() 方法的, 應(yīng)該都知道這個(gè)方法存在一個(gè)小小的BUG,在IE 下和FF 下對于小數(shù)的進(jìn)位有點(diǎn)不同
但凡用過js 中的toFix() 方法的, 應(yīng)該都知道這個(gè)方法存在一個(gè)小小的BUG。
在IE 下和FF 下對于小數(shù)的進(jìn)位有點(diǎn)不同。
例如( 0.005)在ie 下 toFix(2)=0.00. 在FF 下 toFix(2)=0.01.
這樣就會(huì)造成數(shù)據(jù)的差異。
我們可以通過 重寫 這個(gè)方法來實(shí)現(xiàn)精度的統(tǒng)一。
復(fù)制代碼 代碼如下:

Number.prototype.toFixed = function(s)
{
return (parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString();
}

但是這樣做仍然有一個(gè)問題, 在所有的瀏覽器下, String("0.050").toFix(2)=0.1
我們可以看到這樣你原本要保留兩位小數(shù)卻變成了一位。 也就是說。這個(gè)重寫只有的toFixed() 會(huì)自動(dòng)舍棄最后的0.
我們需要對這個(gè)方法做進(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)文章

最新評論