如何在JavaScript中将字符串转换为整数?


当前回答

请参见以下示例。这将有助于回答您的问题。

Example                  Result

parseInt("4")            4
parseInt("5aaa")         5
parseInt("4.33333")      4
parseInt("aaa");         NaN (means "Not a Number")

通过使用parsent函数,它将只提供整数运算,而不提供字符串。

其他回答

数字()

Number(" 200.12 ")  // Returns 200.12

Number("200.12")  // Returns 200.12

Number("200") // Returns 200

parseInt()

parseInt(" 200.12 ")  // Return 200

parseInt("200.12")  // Return 200

parseInt("200") // Return 200

parseInt("Text information") // Returns NaN

parseFloat()

它将返回第一个数字

parseFloat("200 400")  // Returns 200

parseFloat("200") // Returns 200

parseFloat("Text information") // Returns NaN

parseFloat("200.10")  // Return 200.10

数学地板()

将数字舍入为最接近的整数

Math.floor(" 200.12 ")  // Return 200

Math.floor("200.12")  // Return 200

Math.floor("200") // Return 200

JavaScript中有许多方法可以将字符串转换为数值。。。所有这些都简单方便。选择适合您的方式:

var num = Number("999.5"); //999.5
var num = parseInt("999.5", 10); //999
var num = parseFloat("999.5"); //999.5
var num = +"999.5"; //999.5

此外,任何数学运算都会将它们转换为数字,例如。。。

var num = "999.5" / 1; //999.5
var num = "999.5" * 1; //999.5
var num = "999.5" - 1 + 1; //999.5
var num = "999.5" - 0; //999.5
var num = Math.floor("999.5"); //999
var num = ~~"999.5"; //999

我更喜欢的方式是使用+符号,这是在JavaScript中将字符串转换为数字的优雅方式。

我喜欢这个把戏:

~~"2.123"; //2
~~"5"; //5

双位负数在小数点之后会丢弃任何内容,并将其转换为数字格式。我被告知它比调用函数等稍快,但我并不完全相信。

我刚才在这里看到的另一个方法(一个关于JavaScript>>>运算符的问题,它是一个零填充右移),它显示了用这个运算符将数字移位0将数字转换为uint32,如果您也希望它无符号,这是很好的。同样,这将转换为无符号整数,如果使用有符号数字,这可能会导致奇怪的行为。

"-2.123" >>> 0; // 4294967294
"2.123" >>> 0; // 2
"-5" >>> 0; // 4294967291
"5" >>> 0; // 5

尝试parseInt。

var number = parseInt("10", 10); //number will have value of 10.

确保获得有效整数的最安全方法:

let integer = (parseInt(value, 10) || 0);

示例:

// Example 1 - Invalid value:
let value = null;
let integer = (parseInt(value, 10) || 0);
// => integer = 0
// Example 2 - Valid value:
let value = "1230.42";
let integer = (parseInt(value, 10) || 0);
// => integer = 1230
// Example 3 - Invalid value:
let value = () => { return 412 };
let integer = (parseInt(value, 10) || 0);
// => integer = 0