Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Math.floor生成的数字低于预期值_Javascript_Math_Floor - Fatal编程技术网

Javascript Math.floor生成的数字低于预期值

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'); 当您查看内部演示时,您将看

我给它一个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');
当您查看内部演示时,您将看到如下内容:

19.90 * 100
> 1989.9999999999998
JavaScript浮点数不能准确地表示您的数字,但可以使用接近实数的数字。现在对该值使用时,得到的是
19.89
,而不是
19.90

为了对这一主题有一个大致的了解,我请大家回答以下问题:


那么你想做什么?括号放错了<代码>数学层(19.90)*100@Capital只是将价格四舍五入,但它们是根据用户的选择生成的,在这种情况下,它不起作用。@jurgemaister将使其达到1900,这不是我需要的。对于
价格=19.90
,它仍然返回19.89欧元。OP的问题是括号。@jurgemaister对我有效:|编辑:错过了代码示例中的更改,抱歉。