Javascript 计算时获得NaN
当我尝试在html中输入一些数字时,我在这里得到一个Javascript 计算时获得NaN,javascript,Javascript,当我尝试在html中输入一些数字时,我在这里得到一个NaN值。我不知道为什么 var firstNumber= document.getElementById("numberone").value; var secondNumber = document.getElementById("numbertwo").value; function addition(){ var result = firstNumber + secondNumber; document.getElementB
NaN
值。我不知道为什么
var firstNumber= document.getElementById("numberone").value;
var secondNumber = document.getElementById("numbertwo").value;
function addition(){
var result = firstNumber + secondNumber;
document.getElementById("equals").innerHTML = result;
}
function subtraction(){
var result = firstNumber - secondNumber;
document.getElementById("equals").innerHTML = result;
}
function multiplication(){
var result = firstNumber * secondNumber;
document.getElementById("equals").innerHTML = result;
}
您应该使用
parseInt(value,base)
解析输入中的值,其中value是输入值,base是数学数字系统中的基数
var firstNumber = parseInt(document.getElementById("numberone").value, 10);
var secondNumber = parseInt(document.getElementById("numbertwo").value, 10);
您可以在此处阅读更多信息:
编辑:
我假设您正在处理整数值,但您可以尝试处理浮点值,或者,也可以使用库来处理和格式化数值,例如在程序开始时设置变量
firstNumber
和secondNumber
的值(它们很可能只是空字符串,在执行设置它们的两行代码时,这两个输入还没有填充任何内容)。每当执行依赖于这些值的函数之一时,您应该获得这些值:
function getValue(id) {
return +document.getElementById(id).value; // get the value of the input whose ID is id and convert the value to a number using unary +
}
function addition(){
var result = getValue("numberone") + getValue("numbertwo"); // use getValue here
document.getElementById("equals").innerHTML = result;
}
function subtraction(){
var result = getValue("numberone") - getValue("numbertwo"); // here two
document.getElementById("equals").innerHTML = result;
}
//...
.value
是字符串…但是输入是数字。那么,我怎么能用我的输入不得到NaN呢?你需要使用parseInt或类似的函数来转换你的输入。.value
总是返回字符串。value
是不考虑内容的字符串-parseFloat
/parseInt
/Number
…是just有3种方法可以用来解决问题。当然,这是假设OP只想处理整数