Javascript Math.floor生成的数字低于预期值
我给它一个19.90的价格,它输出19.98,最初的计算是:Javascript Math.floor生成的数字低于预期值,javascript,math,floor,Javascript,Math,Floor,我给它一个19.90的价格,它输出19.98,最初的计算是: $('#price').text((Math.floor(price * 100) / 100) + ' Euro'); 下面是一个JSFIDLE,其中Math.floor部分给出了问题: 我希望它能再次达到19.9分 在您的特殊情况下,您可能应该切换到使用浮点算法来处理不精确性 $('#price').text((Math.round(price * 100) / 100) + ' Euro'); 当您查看内部演示时,您将看
$('#price').text((Math.floor(price * 100) / 100) + ' Euro');
下面是一个JSFIDLE,其中Math.floor部分给出了问题:
我希望它能再次达到19.9分 在您的特殊情况下,您可能应该切换到使用浮点算法来处理不精确性
$('#price').text((Math.round(price * 100) / 100) + ' Euro');
当您查看内部演示时,您将看到如下内容:
19.90 * 100
> 1989.9999999999998
JavaScript浮点数不能准确地表示您的数字,但可以使用接近实数的数字。现在对该值使用时,得到的是19.89
,而不是19.90
为了对这一主题有一个大致的了解,我请大家回答以下问题:
价格=19.90
,它仍然返回19.89欧元。OP的问题是括号。@jurgemaister对我有效:|编辑:错过了代码示例中的更改,抱歉。