Jquery显示$ 20.099999999999998而不是$ 20.1

Ste*_*ven 1 javascript jquery floating-accuracy

这是Jquery代码:

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

}
Run Code Online (Sandbox Code Playgroud)

当读者的价值为67且单位支付为0.3时,它会计算总价并显示$ 20.099999999999998,而不是$ 20.1.怎么了?如果我希望它显示$ 20.1而不是$ 20.099999999999998,我该如何重写代码?

Der*_*ley 6

这个怎么样:

$('#totalprice').text('$'+totalprice.toFixed(1));
Run Code Online (Sandbox Code Playgroud)

要么:

$('#totalprice').text('$'+totalprice.toFixed(2));
Run Code Online (Sandbox Code Playgroud)

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


kei*_*ant 5

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