我正在为用户输入一个表格来输入数字,然后尝试显示总和。
但是document.getElementById('someid').value
正在返回一个字符串。因此我的添加功能是连接字符串而不是将它们添加为数字。我该如何解决呢。对不起这个基本问题。
//Script
function add(){
var a = document.getElementById('num1').value;
var b = document.getElementById('num2').value;
return a + b;
}
console.log(add());
//HTML
<p> Input 2 numbers to add</p>
<input type="number" id="num1"/>
<input type="number" id="num2"/>
<input type="submit" value="Add" onclick="add()">
答案 0 :(得分:3)
您有三种选择。
请将基础10解析添加到它,因为你保存引擎不要试图猜测它应该解析整数的基数。
返回parseInt(a,10)+ parseInt(b,10);
我更喜欢的方法是通过简单地将字符串包装在数字构造函数中来将字符串类型强制转换为数字类型
返回编号(a)+编号(b);
3.unary plus
一元加号是将某些东西转换为数字的最快和首选方式。但在我看来,数字(a)更具可读性。
返回+ a + + b
注意:不要从解析整数的人那里复制坏代码而不给它提供解析基础。
答案 1 :(得分:2)
尝试使用 parseInt
。此函数返回数字
答案 2 :(得分:1)
var a = parseInt(document.getElementById('num1').value);
答案 3 :(得分:1)
您应该在+
前加上它,因为它们是字符串而不是数字。
试试这个:
function add(){
var a = document.getElementById('num1').value;
var b = document.getElementById('num2').value;
var x = +a + +b;
return x;
}
或者,简单地说:
var a = parseInt(document.getElementById('num1').value);
var b = parseInt(document.getElementById('num2').value);
var x = a + b;
修改代码:
<html>
<body>
<p>Input 2 numbers to add</p>
<input type="number" id="num1"/>
<input type="number" id="num2"/>
<input type="submit" value="Add" onclick="add()">
<p id="result"></p>
<script>
function add(){
var a = document.getElementById('num1').value;
var b = document.getElementById('num2').value;
var x = +a + +b;
document.getElementById("result").innerHTML = x;
}
</script>
</body>
</html>
答案 4 :(得分:1)
你必须告诉javascript你想要使用数字而不是字符串。 而不是
function add(){
var a = document.getElementById('num1').value;
var b = document.getElementById('num2').value;
return a + b;
}
你可以使用
function add(){
var a = document.getElementById('num1').value + 0;
var b = document.getElementById('num2').value + 0;
return a + b;
}
或
function add(){
var a = parseInt(document.getElementById('num1').value);
var b = parseInt(document.getElementById('num2').value);
return a + b;
}
答案 5 :(得分:0)
javax
对于整数
'javax'
对于浮点数所以小数