我使用代码在我的值之后添加零并从互联网获取帮助并找到此代码
$(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
答案 0 :(得分:0)
toFixed
方法可能无法始终确保转换结果的正确舍入。
例如,(0.947).toFixed(0)
可能会产生'0'或'1',具体取决于浏览器;因此,在Internet Explorer 8及更早版本中,(0.947).toFixed(0)
生成'0' - 而在IE9,Firefox或Google Chrome中,相同的转换生成'1'。
您可以将Math.round
与toFixed
结合使用来纠正此问题:
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'