jquery中的标准尾随零,支持美分和字符串

时间:2015-08-13 07:05:16

标签: jquery trailing

我使用代码在我的值之后添加零并从互联网获取帮助并找到此代码

$(document).ready(function() {
     //var number = 258.20;
     var number = 2;
     var rounded = number.toFixed(2); // rounded = 258.20
     document.write(rounded);
});

并添加到我的项目中,但后来我发现这段代码不能用于分数,我用我的测试用例检查了这段代码,发现它无法正常工作。如果我使用值0.99,则将其转换为0.00,当我使用值45时,其工作正常45.00但当我使用extra cost is 0.99 cents时,其转换为{{1} }}。我试图找到每个地方,但没有取得成功。那么有没有办法找到值中的数字并检查它,如果它是数字它应该添加零,如果它的分数它应该与分值一起工作,如果值是字符串它也应该与它一起工作。

我找到了解决方案,就在这里。

NaN

1 个答案:

答案 0 :(得分:0)

toFixed方法可能无法始终确保转换结果的正确舍入。

例如,(0.947).toFixed(0)可能会产生'0'或'1',具体取决于浏览器;因此,在Internet Explorer 8及更早版本中,(0.947).toFixed(0)生成'0' - 而在IE9,Firefox或Google Chrome中,相同的转换生成'1'。

您可以将Math.roundtoFixed结合使用来纠正此问题:

x=0.947;    s0=(Math.round(x)).toFixed(0)           // '1'
x=0.0947;   s1=(Math.round(10*x)/10).toFixed(1)     // '0.1'
x=0.00947;  s2=(Math.round(100*x)/100).toFixed(2)   // '0.01'
x=0.000947; s3=(Math.round(1000*x)/1000).toFixed(3) // '0.001'