我有两个字符串,其中只包含数字:
var num1 = '20',
num2 = '30.5';
我本以为我可以把它们加在一起,但它们却被连接起来:
num1 + num2; // = '2030.5'
我如何才能迫使这些字符串被视为数字?
我有两个字符串,其中只包含数字:
var num1 = '20',
num2 = '30.5';
我本以为我可以把它们加在一起,但它们却被连接起来:
num1 + num2; // = '2030.5'
我如何才能迫使这些字符串被视为数字?
当前回答
我建议使用一元加运算符,强制将最终字符串作为数字处理,在圆括号内,使代码更具可读性,如下所示:
(+varname)
所以,在你的例子中是:
var num1 = '20',
num2 = '30.5';
var sum = (+num1) + (+num2);
// Just to test it
console.log( sum ); // 50.5
其他回答
var result = Number(num1) + Number(num2);
在这里,你有两个选择:-
1.您可以使用一元加号将字符串数字转换为整数。 2.您还可以通过将数字解析为相应的类型来实现这一点。即parseInt(), parseFloat()等
.
现在我将在这里通过例子向你们展示(求两个数字的和)。
使用一元加运算符
<!DOCTYPE html>
<html>
<body>
<H1>Program for sum of two numbers.</H1>
<p id="myId"></p>
<script>
var x = prompt("Please enter the first number.");//prompt will always return string value
var y = prompt("Please enter the second nubmer.");
var z = +x + +y;
document.getElementById("myId").innerHTML ="Sum of "+x+" and "+y+" is "+z;
</script>
</body>
</html>
〇使用解析方法
<!DOCTYPE html>
<html>
<body>
<H1>Program for sum of two numbers.</H1>
<p id="myId"></p>
<script>
var x = prompt("Please enter the first number.");
var y = prompt("Please enter the second number.");
var z = parseInt(x) + parseInt(y);
document.getElementById("myId").innerHTML ="Sum of "+x+" and "+y+" is "+z;
</script>
</body>
</html>
我建议使用一元加运算符,强制将最终字符串作为数字处理,在圆括号内,使代码更具可读性,如下所示:
(+varname)
所以,在你的例子中是:
var num1 = '20',
num2 = '30.5';
var sum = (+num1) + (+num2);
// Just to test it
console.log( sum ); // 50.5
你可以这样用:
var num1 = '20',
num2 = '30.5';
alert((num1*1) + (num2*1)); //result 50.5
当在num1中应用*1时,将字符串转换为数字。
如果num1包含字母或逗号,则返回NaN乘以1
如果num1为空,num1返回0
亲切的问候! !
可以使用parseInt将字符串解析为数字。为了安全起见,始终传递10作为以10为基数解析的第二个参数。
num1 = parseInt(num1, 10);
num2 = parseInt(num2, 10);
alert(num1 + num2);