我有两个字符串,其中只包含数字:

var num1 = '20',
    num2 = '30.5';

我本以为我可以把它们加在一起,但它们却被连接起来:

num1 + num2; // = '2030.5'

我如何才能迫使这些字符串被视为数字?


当前回答

如果你想将数字作为字符串来执行操作(就像在数字大于64位的情况下),你可以使用大整数库。

const bigInt = require('big-integer')
bigInt("999").add("1").toString() // output: "1000"

其他回答

如果你想将数字作为字符串来执行操作(就像在数字大于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:世界上最被误解的编程语言》。

你可以这样用:

var num1 = '20',
    num2 = '30.5';

alert((num1*1) + (num2*1)); //result 50.5

当在num1中应用*1时,将字符串转换为数字。

如果num1包含字母或逗号,则返回NaN乘以1

如果num1为空,num1返回0

亲切的问候! !

使用parseFloat(string)将字符串转换为浮点数或使用parseInt(string)将字符串转换为整数

document.getElementById(currentInputChoosen).value -= +-100;

在我的情况下,如果你遇到了和我一样的问题,却找不到解决方案,找到了这个SO问题。

抱歉有点跑题了,但我刚刚发现这是有效的,我想它可能值得分享。

不知道这是一个肮脏的变通办法,还是真的合法。