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

新手上路,请多包涵
阅读 981
2 个回答

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

 var x = Number("1000")

如果这对您不起作用,那么还有 parseIntunary plus带有 floor 的 parseFloatMath.round 方法。

解析:

 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)

原文由 Nosredna 发布,翻译遵循 CC BY-SA 3.0 许可协议

试试 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

原文由 Zanoni 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题