为什么2加2导致22?

时间:2014-05-24 01:27:43

标签: javascript html

我是Javascript编码的新手,我正在尝试制作我的第一个计算器:它有三个文本框,用户在第一个文本框中输入要添加的第一个数字,第二个文本中的第二个数字框,然后他们点击一个按钮,添加这两个数字的结果出现在第三个文本框中。但是当我做1 + 1时它会产生11而不是2而当我做2 + 2时它会产生22而不是4.我知道这是一个非常新手的问题,但是你能帮助我吗?我究竟做错了什么?也很抱歉我的英语不好,我是巴西人。这是JS代码:

<script>
  function AddResolve() {
    document.getElementById('AddResult').value = document.getElementById('AddInputOne').value + document.getElementById('AddInputTwo').value
  }
</script>

以下是三个框和按钮的HTML代码:

<input type="text" id="AddResult">
<input type="text" id="AddInputOne">
<input type="text" id="AddInputTwo">
<input type="button" id="AddButton" onclick="AddResolve()">

3 个答案:

答案 0 :(得分:8)

这是因为Javascript中的字段值是字符串,而不是数字。你需要强迫它们成为整数:

document.getElementById('AddResult').value =
  parseInt(document.getElementById('AddInputOne').value) +
  parseInt(document.getElementById('AddInputTwo').value)

使用字段值调用parseInt()会将字符串转换为整数。

答案 1 :(得分:0)

存储在文本框中的value是一个字符串,JavaScript通过连接它们来添加字符串。您需要将这两个字符串转换为parseInt(value, 10)的数字。

答案 2 :(得分:0)

只是一个猜测,你有没有机会添加&#34; 2&#34; +&#34; 2&#34;或&#34; 2&#34; + 2?添加字符串不会添加数字。

制作它~~&#34; 2&#34;或parseInt(&#34; 2&#34;)取决于您需要的结果

参考:

0)JavaScript string and number conversion

1)What is the "double tilde" (~~) operator in JavaScript?

2)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt