如何在JavaScript中将字符串转换为整数?
当前回答
最简单的方法是使用本机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)
其他回答
您可以使用加号。例如:
var personAge = '24';
var personAge1 = (+personAge)
然后您可以看到新变量的typebytypeofpersonAge1;这是数字。
最简单的方法是这样使用+
const strTen = "10"
const numTen = +strTen // string to number conversion
console.log(typeof strTen) // string
console.log(typeof numTen) // number
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中将字符串转换为数字的优雅方式。
前面的所有答案都是正确的。请先通过“typeot x==='number'”确认这是字符串中的数字。否则,它将返回NaN。
var num = "fsdfsdf242342";
typeof num => 'string';
var num1 = "12423";
typeof num1 => 'number';
+num1 = > 12423`
尝试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
推荐文章
- 我如何使用Jest模拟JavaScript的“窗口”对象?
- 我应该如何从字符串中删除所有的前导空格?- - - - - -斯威夫特
- 我如何等待一个承诺完成之前返回一个函数的变量?
- 在JavaScript中根据键值查找和删除数组中的对象
- 使嵌套JavaScript对象平放/不平放的最快方法
- 如何以及为什么'a'['toUpperCase']()在JavaScript工作?
- 有Grunt生成index.html不同的设置
- 文档之间的区别。addEventListener和window。addEventListener?
- 如何检查动态附加的事件监听器是否存在?
- 将整数转换为字符串,以逗号表示千
- 如何写setTimeout与参数Coffeescript
- 将JavaScript字符串中的多个空格替换为单个空格
- printf()和puts()在C语言中的区别是什么?
- JavaScript: override alert()
- 重置setTimeout