.toFixed()没有正确舍入数字

时间:2017-02-14 09:36:02

标签: javascript jquery

昨天我遇到一个问题,当我使用Javascript / jQuery将某些数字乘以100时,我得到了一个奇怪的数字。

I.E 16.74 * 100 = 1673.9999999999998

搜索后我发现这与浮点值有关,并且使用.toFixed命令可以解决问题。

这是我的代码似乎不起作用

<input type="text" name="f_prodcost" id="f_prodcost" />
<input type="text" name="h_prodcost" id="h_prodcost" disabled="disabled" />
<script>
$('#f_prodcost').change(function() {
    $('#h_prodcost').val($(this).val()*100).toFixed();
});
</script>

我已经阅读了有关Stackoverflow的其他问题,但我还没有能够解决这个问题,我很欣赏这对于对javascript / jquery有清晰认识的人来说可能非常简单,但我目前正在学习所以会很感激任何指针。

3 个答案:

答案 0 :(得分:3)

看起来你的括号错了,试试这样的......

$('#h_prodcost').val(($(this).val()*100).toFixed());

在转入toFixed()之前,您需要致电.val()

答案 1 :(得分:0)

你有一个括号问题。在设置输入值之前,必须调用toFixed方法

$('#f_prodcost').change(function() {
    $('#h_prodcost').val(($(this).val()*100).toFixed());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="f_prodcost" id="f_prodcost" />
<input type="text" name="h_prodcost" id="h_prodcost" disabled="disabled" />

答案 2 :(得分:-3)

您必须将参数传递给.toFixed函数

$('#h_prodcost').val($(this).val()*100).toFixed(2)

这将在点

之后返回最多2位数

此值1673.9999999999998将返回1673.99

您可以将toFixed()函数传递给任何数字1,2,3等