Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 .toFixed()未正确舍入数字_Javascript_Jquery - Fatal编程技术网

Javascript .toFixed()未正确舍入数字

Javascript .toFixed()未正确舍入数字,javascript,jquery,Javascript,Jquery,昨天我遇到了一个问题,当我使用Javascript/jQuery将某些数字乘以100时,返回了一个奇怪的数字 即16.74*100=1673.999999998 搜索之后,我发现这与浮点值有关,使用.toFixed命令应该可以解决这个问题 这是我的代码,似乎不起作用 <input type="text" name="f_prodcost" id="f_prodcost" /> <input type="text" name="h_prodcost" id="h_prodcost

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

即16.74*100=1673.999999998

搜索之后,我发现这与浮点值有关,使用
.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>

$('f#u prodcost')。更改(函数(){
$('h#u prodcost').val($(this.val()*100.toFixed();
});

我已经阅读了关于Stackoverflow的其他问题,但我还没有卖出这个问题,我知道这对于一个对javascript/jquery有着清晰理解的人来说可能真的很简单,但我目前正在学习,所以我希望能有任何指示。

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

$('#h_prodcost').val($(this).val()*100).toFixed(2)
这将返回点后最多2位数字

此值
1673.999999999998
将返回
1673.99


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

如果您有括号问题。在设置输入值之前,必须调用
toFixed
方法
$('f#u prodcost')。更改(函数(){
$('h#u prodcost').val($(this.val()*100.toFixed());
});

看起来您的括号有误,请尝试以下操作

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

您需要调用
toFixed()
才能传递到
.val()

Number($('h#u prodcost').val($(this.val()*100)).toFixed();。它到底是如何不适合你的?它会在控制台中显示错误消息?它打印的值不正确?它会使计算机着火?数字是可选的。如果未传递任何值,则默认值为0。您的
toFixed
仍然是参数的错误端。这是OP中的实际错误。