私のコードは次のとおりです。期待される結果はJavascript toFixed IE6のバグ?
var m=0.00542;
alert(m.toFixed(3));
alert(m.toFixed(2));
:0.005 0.01
が、IE6で、結果は次のとおりです。0.005 0.00
私は何ができるのでしょうか?
私のコードは次のとおりです。期待される結果はJavascript toFixed IE6のバグ?
var m=0.00542;
alert(m.toFixed(3));
alert(m.toFixed(2));
:0.005 0.01
が、IE6で、結果は次のとおりです。0.005 0.00
私は何ができるのでしょうか?
IE6が壊れています。 Googleでもそれをサポートしていません。この特定の問題は簡単に解決します。
は、Number.toFixed()
をパッチ今期待される出力を生成する必要があります
Number.prototype.toFixed = function(n) {
var power = Math.pow(10, n);
var fixed = (Math.round(this * power)/power).toString();
if(n == 0) return fixed;
if(fixed.indexOf('.') < 0) fixed += '.';
var padding = n + 1 - (fixed.length - fixed.indexOf('.'));
for(var i = 0; i < padding; i++) fixed += '0';
return fixed;
};
あなたのコードを定義します。
丸めを実行します。最新のブラウザに同じコードを入力してください。 –
'0.95.toFixed(1)'はIE6で '1.0'を返します。 –
'toFixed'の実装が間違っています。それは文字列でなければならないが、数値を返す。 '0..toFixed(2)'は '0'ではなく' 0.00'を返さなければなりません。 –
IE6のサポートをディッチして修正しました。それはバーベキューアップされた部分的に消化されたゴミの一部です。 –
'0.9.toFixed(0)'はIE6で '0'を返します。どんなアプリケーションがIE6をサポートする必要があるのですか? –
@MarcB +1は、唯一の - 賞賛 - 偉大な - 最高 - IE6。しかし、それは質問に対する答えではありません。 –