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


当前回答

以下是最简单的解决方案

let myNumber = "123" | 0;

更简单的解决方案

let myNumber = +"123";

其他回答

最简单的方法是使用本机Number函数:

var x = Number("1000")

如果这对你不起作用,那么有parseInt、一元加号、parseFloat with floor和Math.round方法。

parseInt()

var x = parseInt("1000", 10); // You want to use radix 10
    // So you get a decimal number even with a leading 0 and an old browser ([IE8, Firefox 20, Chrome 22 and older][1])

一元加

如果字符串已经是整数形式:

var x = +"1000";

地板()

如果字符串是或可能是浮点数,并且需要整数:

var x = Math.floor("1000.01"); // floor() automatically converts string to number

或者,如果您要多次使用Math.floor:

var floor = Math.floor;
var x = floor("1000.01");

parseFloat()

如果你是一个在调用parseInt时忘记输入基数的类型,你可以使用parseFloat并根据自己的喜好进行舍入。这里我用地板。

var floor = Math.floor;
var x = floor(parseFloat("1000.01"));

舍入()

有趣的是,Math.round(如Math.floor)将进行字符串到数字的转换,因此如果您希望数字四舍五入(或如果字符串中有整数),这是一个很好的方法,可能是我的最爱:

var round = Math.round;
var x = round("1000"); // Equivalent to round("1000", 0)

如果您使用parseInt将浮点转换为科学符号,请小心!例如:

parseInt("5.6e-14") 

将导致

5 

而不是

0

您可以使用加号。例如:

var personAge = '24';
var personAge1 = (+personAge)

然后您可以看到新变量的typebytypeofpersonAge1;这是数字。

要将字符串转换为整数,我建议使用parseFloat而不是parseInt。原因如下:

使用parseFloat:

parseFloat('2.34cms')  //Output: 2.34
parseFloat('12.5')     //Output: 12.5
parseFloat('012.3')    //Output: 12.3

使用parseInt:

parseInt('2.34cms')  //Output: 2
parseInt('12.5')     //Output: 12
parseInt('012.3')    //Output: 12

因此,如果您注意到parseInt丢弃小数后的值,而parseFloat允许您处理浮点数字,因此如果您希望保留小数后的数值,则更适合。当且仅当您确定需要整数值时,才使用parseInt。

我使用这种方式将字符串转换为数字:

var str = "25";       // String
var number = str*1;   // Number

因此,当乘以1时,值不会改变,但JavaScript会自动返回一个数字。

但如下图所示,如果您确定str是一个数字(或可以表示为数字),则应使用此选项,否则它将返回NaN,而不是数字。

您可以创建简单的函数来使用。,

function toNumber(str) {
    return str*1;
}