ホームページ  >  記事  >  ウェブフロントエンド  >  js の toFixed() メソッドを書き換えて、precision_javascript スキルの統合を実現する

js の toFixed() メソッドを書き換えて、precision_javascript スキルの統合を実現する

WBOY
WBOYオリジナル
2016-05-16 16:56:442845ブラウズ

js で toFix() メソッドを使用したことのある人は、このメソッドに小さなバグがあることを知っているはずです。
IE と FF では、小数の桁上げが少し異なります。
たとえば、IE では (0.005) 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
最初は小数点以下 2 桁を保持するつもりだったのが 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(index0){
changenum=changenum ".";
for(i=0;ichangenum=changenum "0 ";
}

}else {
index=changenum.length-index;
for(i=0;i変更番号 = 変更番号 "0";
}

}

変更番号を返します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。