我正在尝试使用存储在数组中的数字进行操作,不幸的是它们似乎被视为“文本”而不是数字,所以当我喜欢array1 [i] + array2 [i]时,而不是做2 + 3 = 5我会得到2 + 3 = 23 ......
这些数组的值来自字段(html)
不知道如何处理; D 谢谢你的帮助
如果你想查看我的代码,这就是它的样子:
var polynome = [];
for (var i=0; i<=degree; ++i) {
polynome[i] = document.getElementById(i).value;
}
var a = document.getElementById("a").value;
var tempArray = [];
var quotient = [];
quotient[degree+1] = 0;
for (var i=degree; i>=0; --i) {
tempArray[i] = a * quotient[i+1];
quotient[i] = polynome[i] + tempArray[i];
}
document.getElementById("result").innerHTML = polynome + "<br>" + tempArray + "<br>" + quotient;
答案 0 :(得分:2)
array1[i]
包含字符串而不是int,因此当您使用+
运算符尝试这两个元素时,它会连接两个值而不是添加它们
您需要将数组中的两个元素都转换为整数
试试这个
parseInt( array1[i] ) + parseInt( array2[i] )
答案 1 :(得分:0)
+
标点符号被重载,可以表示addition,连接和conversion to number。为了确保它被解释为加法,操作数必须是数字。有许多方法可以将字符串转换为数字,因此给出:
var a = '2';
var b = '3';
一元+运算符将转换整数和浮点数,但它有点模糊:
+a + +b
parseInt 将转换为整数:
parseInt(a, 10) + parseInt(b, 10);
parseFloat 将转换整数和浮点数:
parseFloat(a) + parseFloat(b);
作为函数调用的Number构造函数将转换整数和浮点数并且是语义的:
Number(a) + Number(b);
最后有unary -
operator,但很少使用,因为减法(如乘法和除法)将操作数转换为数字并反转符号,所以要添加do:
a - -b