我在尝试计算总值时遇到问题,总值是乘法结果的总和 和总的当前价值。我正在处理投入,我不知道我错过了什么。
var monto = parseInt(cantidad.value) * parseInt(precio.value);
var total = document.getElementById("total");
var t = 0;
var num1 = monto;
var num2 = total.value;
t = parseInt(num1) + parseInt(num2);
total.value = t;
答案 0 :(得分:2)
tldr;这是因为parseInt(..)
超过一个或多个输入会导致NaN。当输入不代表有效数字时会发生这种情况,例如parseInt("foo")
或parseInt(undefined)
。
这会引入一种沉默的NaN,它会污染"数学运算:NaN + x -> NaN
或x + NaN -> NaN
。
虽然isNaN
可以用作警卫,但是正确的"方法可能是找出哪个 parseInt
导致NaN(以及哪个输入)并修复它。 debugger
关键字在这里很有用,当与适当的开发人员工具一起使用时,可以分析情况(即特定值)。