IE6中的Javascript toFixed错误?

时间:2012-05-06 13:17:21

标签: javascript internet-explorer-6

我的代码是:

var m=0.00542;
alert(m.toFixed(3));  
alert(m.toFixed(2)); 

预期结果为:0.005 0.01

但在ie6中,结果为:0.005 0.00

我能做什么?

1 个答案:

答案 0 :(得分:4)

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;
};

您的代码现在应该生成预期的输出。