这是Jquery的代码:

  function Totalprice()
{
    var unitprice=$('#unitpay').val();
    var quota=$('#readers').val();
    var totalprice=unitprice*quota;
    $('#totalprice').text('$'+totalprice);

}

当读者的值是67和unitpay是0.3,它计算总价,并显示$ 20.099999999999998,不20.1 $。怎么了?如果我希望它显示$ 20.1,而不是$ 20.099999999999998,我怎么可以重写代码?

有帮助吗?

解决方案

这样如何:

$('#totalprice').text('$'+totalprice.toFixed(1));

或:

$('#totalprice').text('$'+totalprice.toFixed(2));

要它显示为一个实际的美元金额。

其他提示

随着你的热情的评论家指出的那样,这是一个浮点错误。快速和容易的解决方案是使用像toFixed()的舍入方法。

只要使用.toFixed(2)(链接)

的问题是,计算机不能代表一些数字恰好(他们有限的,并且在二进制操作),所以像这样的事情发生。

JavaScript有一些非常严重的浮点运算问题。尝试在Firebug的控制台一些有趣的打字0.1 + 0.2的某个时候。

这是不与jQuery的问题。如已经如上所述,使用toFixed()。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top