1

这是Jquery代码:</p>

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

}

当 reader 的值为 67 且 unitpay 为 0.3 时,它会计算总价并显示 $20.099999999999998 ,而不是 $20.1。怎么了?如果我希望它显示 $20.1 而不是 $20.099999999999998,我该如何重写代码?

4

4 回答 4

6

这个怎么样:

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

或者:

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

将其显示为实际的美元金额。

于 2009-11-19T06:51:10.657 回答
5

正如您热情的评论员所指出的,这是一个浮点错误。快速简便的解决方案是使用像 toFixed() 这样的舍入方法。

于 2009-11-19T06:52:25.377 回答
3

只需使用.toFixed(2). (关联)

问题是计算机不能准确地表示某些数字(它们是有限的,并且以二进制方式运行),所以会发生这样的事情。

于 2009-11-19T06:52:19.683 回答
0

Javascript 有一些非常严重的浮点问题。尝试在 Firebug 控制台中输入 0.1+0.2 以获得一些乐趣。

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

于 2009-11-19T12:15:25.810 回答