将字符串转换为整数?

北战南征 提交于 2019-12-07 11:56:44

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


#1楼

尝试parseInt。

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

#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

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

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

#3楼

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

var x = Number("1000")

如果这对您不起作用,则有parseInt一元plus带有floor的parseFloatMath.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)

#4楼

另请注意:Mootools具有函数toInt(),该函数可用于任何本机字符串(或浮点数(或整数))。

"2".toInt()   // 2
"2px".toInt() // 2
2.toInt()     // 2

#5楼

我在这里发布了错误的答案,对不起。 固定。

这是一个老问题,但是我喜欢这个技巧:

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

双按位负数会在小数点后删除所有内容,并将其转换为数字格式。 有人告诉我它比调用函数之类的要快,但是我并不完全相信。

编辑:我刚刚在这里看到的另一种方法(关于javascript >>>运算符的问题,这是一个零填充右移),它表明使用此运算符将数字移位0会将数字转换为uint32 ,如果您也希望它没有签名 。 同样,这将转换为无符号整数 ,如果您使用带符号数字,则可能导致奇怪的行为。

"-2.123" >>> 0; // 4294967294
"2.123" >>> 0; // 2
"-5" >>> 0; // 4294967291
"5" >>> 0; // 5
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!