重写的准确性的重写JS固定()方法
如果你已经用自己的()方法在JS,要知道,这种方法也有小bug。在IE和FF下的小数项有点不同。
例如,(0.005)下即补(2)= 0。修复(2)= 0.01。在FF
这将导致数据的差异。
我们可以通过重写这个方法来重新组合精度。
复制代码代码如下所示:
number.prototype.tofixed =函数(S)
{
返回(parseInt(本* Math.pow(10,s)+ 0.5)/ math.pow(10,s))ToString();
}
但它也有一个问题,在所有的浏览器,字符串(0.050),ToFix(2)= 0.1
我们可以看到,你必须保持两位小数合而为一。换句话说 u3002the改写只有固定()会自动放弃过去的0。
我们需要进一步处理这个方法。
复制代码代码如下所示:
number.prototype.tofixed =函数(S)
{
ChangeNum =(parseInt(本* Math.pow(10,s)+ 0.5)/ math.pow(10,s))ToString();
指数= changenum.indexof(,);
如果(index0){
ChangeNum = ChangeNum + 。;
对于(i = 0;i <;i + +){
ChangeNum = ChangeNum + 0 ;
}
{ }人
指数= changenum.length-index;
为(i = 0;i <(指数)+ 1;i++){
ChangeNum = ChangeNum + 0 ;
}
}
返回ChangeNum;
}