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

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


答案 1

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

var x = Number("1000")

如果这对你不起作用,那么有parseIntunary plusparseFloat with floorMath.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");

如果你是那种在调用 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)

答案 2

尝试 parseInt 函数:

var number = parseInt("10");

但有一个问题。如果您尝试使用parseInt函数转换“010”,它将检测为八进制数,并将返回数字8。因此,您需要指定一个基数(从 2 到 36)。在本例中,基数为 10。

parseInt(string, radix)

例:

var result = parseInt("010", 10) == 10; // Returns true

var result = parseInt("010") == 10; // Returns false

请注意,在解析任何有效数据后会忽略错误数据。
此 guid 将解析为 51:parseInt

var result = parseInt('51e3daf6-b521-446a-9f5b-a1bb4d8bac36', 10) == 51; // Returns true