国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

js toFixed()方法的重寫實現精度的統一

2024-05-06 16:02:16
字體:
來源:轉載
供稿:網友
凡用過js 中的toFix() 方法的, 應該都知道這個方法存在一個小小的BUG,在IE 下和FF 下對于小數的進位有點不同

但凡用過js 中的toFix() 方法的, 應該都知道這個方法存在一個小小的BUG。
在IE 下和FF 下對于小數的進位有點不同。
例如( 0.005)在ie 下 toFix(2)=0.00. 在FF 下 toFix(2)=0.01.
這樣就會造成數據的差異。
我們可以通過 重寫 這個方法來實現精度的統一。

復制代碼 代碼如下:


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
我們可以看到這樣你原本要保留兩位小數卻變成了一位。 也就是說。這個重寫只有的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;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 襄垣县| 宝清县| 扎鲁特旗| 长宁县| 桦甸市| 兴山县| 原平市| 乌拉特后旗| 竹北市| 涟水县| 伊通| 辽中县| 共和县| 禄丰县| 屏山县| 汪清县| 凯里市| 陈巴尔虎旗| 射洪县| 微山县| 弥勒县| 华安县| 温泉县| 林甸县| 永和县| 和龙市| 宣武区| 泰和县| 庆元县| 石家庄市| 敦化市| 哈密市| 开江县| 历史| 海南省| 宁晋县| 富锦市| 金川县| 涟源市| 都江堰市| 青岛市|