在Javascript中添加两个变量
我想输入一个数字(id=“number”)并将其保存为“x”。然后制作另一个变量“y”,即“x”的5%。然后我想把它们加在一起,并将结果保存在一个名为“result”的变量中。 假设x=100。那么y=5。如果我只提醒“y”,它会提醒数字5,这是正确的,但问题是,当我尝试提醒“结果”(x+y)时,它会提醒1005(它不会添加数字,只会将它们写在一起)在Javascript中添加两个变量,javascript,add,Javascript,Add,我想输入一个数字(id=“number”)并将其保存为“x”。然后制作另一个变量“y”,即“x”的5%。然后我想把它们加在一起,并将结果保存在一个名为“result”的变量中。 假设x=100。那么y=5。如果我只提醒“y”,它会提醒数字5,这是正确的,但问题是,当我尝试提醒“结果”(x+y)时,它会提醒1005(它不会添加数字,只会将它们写在一起) 首先获取值,然后将其转换为数字: 更改: var x = document.getElementById("number") 至: var x
首先获取
值
,然后将其转换为数字
:
更改:
var x = document.getElementById("number")
至:
var x = parseInt( document.getElementById("number").value )
注意:即使type
属性与number
相等,也必须将输入转换为数字
函数fun(){
var x=document.getElementById('number')。值;
console.log(x类型)
var y=parseInt(document.getElementById('number').value);
控制台日志(y型)
}
开始..
现在“+”运算符将按预期工作。正在执行的是
x+y
,而不是您想要的整数加法
// String concatenation
console.log("100" + "5"); // outputs "1005"
// Integer Addition
console.log(100 + 5); // outputs "105"
这就是问题所在,但解决办法是什么
解决方案是使用类似于parseInt()
(as)的东西
值得注意的是,Ehsan使用document.getElementById(“数字”)。值来代替document.getElementById(“数字”)
这将强制x为int,这将允许x+y
执行整数加法
另外,我还应该指出,出现问题的部分原因与document.getElementById(“number”).value
是一个字符串,强制执行
加法“+”连接字符串
几乎所有的数学运算都将值转换为数字。一个显著的例外是加法+。如果添加的值之一是字符串,则另一个值也将转换为字符串
然后,它将它们连接起来:
只有当至少一个参数是字符串时,才会发生这种情况。否则,值将转换为数字
这意味着作为字符串的加法运算中的一个操作数(同样,document.getElementById(“number”)。value是字符串)强制将两者都变成字符串并连接起来。document.getElementById(“number”);将为您提供一个元素,您需要使用
.value
获取其值,如果它是and input,或者用户.textContent
获取其值,如果其中包含文本-还需要在检索输入后将字符串转换为int,这听起来像是在进行字符串串联,而不是加法。我将搜索如何修复。
// String concatenation
console.log("100" + "5"); // outputs "1005"
// Integer Addition
console.log(100 + 5); // outputs "105"
var x = parseInt( document.getElementById("number").value );
alert( 1 + '2' ); // '12' (string to the right)
alert( '1' + 2 ); // '12' (string to the left)