昨天我遇到一个问题,当我使用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有清晰认识的人来说可能非常简单,但我目前正在学习所以会很感激任何指针。
答案 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等