加法不正常工作

3

有人能帮我吗?我不确定我在这里做错了什么:

我正在尝试把一些数字相加。

但是它只是把这两个数字放在一起,而不是相加;就像这样:3 + 3 = 33(而不是6)!!!

如果我用*代替+,那么它会返回正确的结果(9)

到底发生了什么?

<p id="A">3</p> 
<p id="B">3</p>

<p id="score"></p>

<script>

var AA = document.getElementById("A").innerHTML;
var BB = document.getElementById("B").innerHTML;

var result = AA + BB;

document.getElementById("score").innerHTML = result;

</script>

1
因为它们是字符串而不是数字,所以你正在进行字符串连接而不是加法。 - Patrick Evans
“+” 既可用于加法,也可用于字符串连接。你认为你正在做哪一个? - Matt Burland
增加更多的正号:result = +AA + +BB; 或者使用负号:result = AA - -BB; - dandavis
2个回答

4
那是因为它们是字符串,所以你得到的是字符串连接。在执行加法之前将它们转换为数字
AA = parseInt(AA, 10);
BB = parseInt(BB, 10);

1
从html中获取的是字符串而不是数字,你需要先将它们解析为数字:
var AA = parseInt(document.getElementById("A").innerHTML, 10);
var BB = parseInt(document.getElementById("B").innerHTML, 10);

parseInt函数将字符串转换为数字,这样您的加法运算就可以正确执行。在parseInt调用中的第二个参数是基数,它有助于在实际解析数字时避免混淆。


2
进制非常重要!有时候可能会导致转换混淆。 - Rajaprabhu Aravindasamy
啊,好眼力,我已经添加了。 - millerbr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接