我正在努力处理一个输入,它应该得到输入B的减法-点后2个小数的输入A。它只在某些情况下有效:
$('.b').on('keyup', function() {
var substr = $('.b').val() - $('.a').val();
$('.c').val(substr).toFixed(2);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
A <input type="text" class="form-control a" value="" /><br /><br /> B <input type="text" class="form-control b" value="" /><br /><br /> B-A <input type="text" class="form-control c" value="" />
每个例子:如果你填入A:0.58
和B 0.82
,C中的值是2个十进制数,但是如果我把B中的值改为0.81
,C的值不再是2个十进制数!
为什么会有这种奇怪的行为呢?
发布于 2021-08-06 08:22:19
您应该在substr
上调用toFixed()
$('.b').on('keyup', function() {
var substr = $('.b').val() - $('.a').val();
$('.c').val(substr.toFixed(2))
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
A <input type="text" class="form-control a" value="" /><br /><br />
B <input type="text" class="form-control b" value="" /><br /><br />
B-A <input type="text" class="form-control c" value="" />
发布于 2021-08-06 09:04:26
最好将变量转换为浮点型。这将允许您正确使用.toFixed()
。
请考虑以下内容。
$("input.b").on('keyup', function() {
var a = parseFloat($("input.a").val());
var b = parseFloat($("input.b").val());
var c = (a - b).toFixed(2);
$("input.c").val(c);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
A <input type="text" class="form-control a" value="19.9999" /><br /><br /> B <input type="text" class="form-control b" value="3.33333" /><br /><br /> B-A <input type="text" class="form-control c" value="" />
在你的脚本中,你也有一个小的打字错误:
$('.c').val(substr).toFixed(2);
这不会像预期的那样工作,我相信你的意思是:
$('.c').val(substr.toFixed(2));
然而,由于这将是字符串变量,它可能不会像预期的那样工作。
发布于 2021-08-06 23:22:05
var n =1.7373773;
n=n.toFixed(2);
document.write(n);
我想你指的是这个。
这将输出n=1.73
https://stackoverflow.com/questions/68684716
复制相似问题