我的代码是:
var m=0.00542;
alert(m.toFixed(3));
alert(m.toFixed(2));
预期结果是:0.005 0.01
但是在ie6中,结果是:0.005 0.00
我能做什么?
最佳答案
IE6 坏了。甚至谷歌都不再支持它了。不过,这个特殊问题很容易解决。
要修补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;
};
您的代码现在应该会生成预期的输出。
关于Javascript 修复了 IE6 中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10470810/