如何添加数字而不是将它们组合成字符串?

时间:2018-11-13 22:43:58

标签: javascript

如果我使用此代码,则它会由数字组成一个字符串,但我不知道为什么。

我希望该程序加8 + 9并使= 17而不是89。

我尝试将其作为一种业余爱好学习,但是大约一年前,我尝试了这一点,但是当我被卡住时,直到现在,我从未尝试过使其发挥作用。

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Variables</h2>

<p id="demo_totaal"></p>
<p id="uitkomst1">8</p>
<p id="uitkomst2">9</p>

<script>

var a = document.getElementById("uitkomst1").innerHTML;
var b = document.getElementById("uitkomst2").innerHTML;
var total = a + b;
document.getElementById("demo_totaal").innerHTML = total;

</script>

</body>
</html>

3 个答案:

答案 0 :(得分:3)

在JavaScript中,您可以使用parseInt(string)来做到这一点。喜欢,

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Variables</h2>

<p id="demo_totaal"></p>
<p id="uitkomst1">8</p>
<p id="uitkomst2">9</p>

<script>
var a = document.getElementById("uitkomst1").innerHTML;
var b = document.getElementById("uitkomst2").innerHTML;
var total = parseInt(a) + parseInt(b);
document.getElementById("demo_totaal").innerHTML = total;
</script>
</body>
</html>

答案 1 :(得分:1)

document.getElementById("uitkomst1").innerHTML返回字符串,因此您的结果将是将两个字符串加在一起的字符串。

如果要添加两个数字,则需要将字符串转换为数字。 JavaScript有不同的方法来执行此操作。

在您的情况下,应使用Number类进行转换。我认为这是最好的选择,因为它也可以转换十进制数。

var numberA = new Number(a); // "8.1"
var numberB = new Number(b); // "9.1"
var total = numberA  + numberA ; // 17.2

答案 2 :(得分:0)

使用parseInt / parseFloat / new Number有多种方法来执行此操作。查看其他答案。

我主要使用它,将数字或字符串乘以1,然后加法。到目前为止,我还没有看到任何问题。性能我不确定,但是

var total = a*1 + b*1;

var a = "1";
var b = "12.5";

var total = a*1 + b*1;

console.log(total)