我有两个字符串,其中只包含数字:
var num1 = '20',
num2 = '30.5';
我本以为我可以把它们加在一起,但它们却被连接起来:
num1 + num2; // = '2030.5'
我如何才能迫使这些字符串被视为数字?
我有两个字符串,其中只包含数字:
var num1 = '20',
num2 = '30.5';
我本以为我可以把它们加在一起,但它们却被连接起来:
num1 + num2; // = '2030.5'
我如何才能迫使这些字符串被视为数字?
当前回答
var result = Number(num1) + Number(num2);
其他回答
如果你想将数字作为字符串来执行操作(就像在数字大于64位的情况下),你可以使用大整数库。
const bigInt = require('big-integer')
bigInt("999").add("1").toString() // output: "1000"
try
var x = parseFloat(num1) + parseFloat(num2) ;
或者,根据你的需要:
var x = parseInt(num1) + parseInt(num2) ;
http://www.javascripter.net/faq/convert2.htm
你可能想读一下Douglas Crockford写的《Javascript: the Good Parts》这本书。Javascript有一个相当大的陷阱集合!这本书对澄清这些问题大有帮助。另请参阅
http://www.crockford.com/ http://javascript.crockford.com/
以及Crockford先生的优秀文章《Javascript:世界上最被误解的编程语言》。
使用parseFloat方法将字符串解析为浮点数:
parseFloat(num1) + parseFloat(num2)
确保你的最终答案四舍五入小于16位小数浮点作为java脚本是错误的。
例如 5 - 7.6 = -2.5999999999999996
使用parseFloat(string)将字符串转换为浮点数或使用parseInt(string)将字符串转换为整数