这是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,我该如何重写代码?
答案 0 :(得分:6)
这个怎么样:
$('#totalprice').text('$'+totalprice.toFixed(1));
或:
$('#totalprice').text('$'+totalprice.toFixed(2));
将其显示为实际的美元金额。
答案 1 :(得分:5)
正如你热心的评论员指出的那样,这是一个floating point error。快速简便的解决方案是使用像toFixed()这样的舍入方法。
答案 2 :(得分:3)
只需使用.toFixed(2)
即可。 (link)
问题在于计算机无法准确表示某些数字(它们是有限的,并且以二进制形式运行),所以这样的事情会发生。
答案 3 :(得分:0)
Javascript有一些非常严重的浮点问题。尝试在Firebug控制台中输入0.1 + 0.2,以获得一些乐趣。
这不是jQuery的问题。如上所述,使用toFixed()。