我有两个字符串,其中只包含数字:
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
其他回答
function sum(){
var x,y,z;
x = Number(document.getElementById("input1").value);
y = Number(document.getElementById("input2").value);
z = x + y;
document.getElementById("result").innerHTML = z ;
}
使用parseFloat(string)将字符串转换为浮点数或使用parseInt(string)将字符串转换为整数
可以使用parseInt将字符串解析为数字。为了安全起见,始终传递10作为以10为基数解析的第二个参数。
num1 = parseInt(num1, 10);
num2 = parseInt(num2, 10);
alert(num1 + num2);
确保你的最终答案四舍五入小于16位小数浮点作为java脚本是错误的。
例如 5 - 7.6 = -2.5999999999999996
你可以这样用:
var num1 = '20',
num2 = '30.5';
alert((num1*1) + (num2*1)); //result 50.5
当在num1中应用*1时,将字符串转换为数字。
如果num1包含字母或逗号,则返回NaN乘以1
如果num1为空,num1返回0
亲切的问候! !