在计算中,我需要将两个不同输入的值相乘,将第三个输入的值相加,然后将这个值放入另一个输入中。第一个输入有时会有一个小数点数(例如: 3.2),而第二个数字有数千、百万等逗号.然后,我需要正确地将这两个数字相乘,将第三个输入值相加,并将结果正确地放入第四个输入中。
现在,这种行为有点奇怪,例如,有时小数3.2将用作32。对于类似的问题,我尝试过几种不同的解决方法,但它们并没有产生我所需要的结果,也没有产生奇怪的行为。toFixed()方法有时会创建太大的数字。例如,它可能会将数百万人转化为万亿人。
编辑:对不起,我忘了说我有第三个输入值,需要在乘法后加到另外两个。这就是问题出现的地方。
$(document).on("input", "#input-1, #input-2, #input-3", function() {
var val1 = $("#input-1").val();
var val2 = parseFloat($("#input-2").val().replace(/,/g, ''));
var val3 = $("#input-3").val();
var total = (val1 * val2) + val3;
total = total.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
$("#input-4").val(total).trigger("input");
});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<input id="input-1" type="text" value="3.2" />
<input id="input-2" type="text" value="1,000,000" />
<input id="input-3" type="text" value="3" />
<input id="input-4" type="text" value="0" />
</div>
发布于 2020-05-05 13:01:08
尝试将输入1的值转换为数字。
var val1 = Number($("#input-1").val());另外,如果没有小数,则第二个输入的值不需要parseFloat。无论如何,您也可以用Number()包装结果。
https://stackoverflow.com/questions/61613733
复制相似问题