在Javascript中添加两个变量

在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

我想输入一个数字(id=“number”)并将其保存为“x”。然后制作另一个变量“y”,即“x”的5%。然后我想把它们加在一起,并将结果保存在一个名为“result”的变量中。 假设x=100。那么y=5。如果我只提醒“y”,它会提醒数字5,这是正确的,但问题是,当我尝试提醒“结果”(x+y)时,它会提醒1005(它不会添加数字,只会将它们写在一起)


首先获取
,然后将其转换为
数字

更改:

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型)
}

开始..
  • 您需要一个值来进行一些计算。所以

    var x=document.getElementById(“number”).value

  • 如果字符串值存在,“+”运算符将连接。var x是字符串值,但当var y=x*0.05时,将发生自动类型转换。因此,您必须通过parseInt()清楚地解释“x是数字”

    var x=parseInt(document.getElementById(“number”).value)


  • 现在“+”运算符将按预期工作。

    正在执行的是
    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)