如何将字符串(带前导零或不带)转换为整数?

问题描述:

如何将字符串(带前导零或不带)转换为整数?例如,'08'8如何将字符串(带前导零或不带)转换为整数?

有几种方法将字符串转换为数字,I prefer to use一元+操作:

var number = +"08"; // 8 

这是写作的等效:

var number = Number("08"); // 8 

不像parseInt(),当使用+或​​不需要基数,因为内部数字转换不会解析八进制数字。如果你想parseInt()parseFloat()方法,它也很简单:

var number = parseInt("08", 10); // 8 

parseIntparseFloat是不太可靠的用户输入,因为无效的数字文字可以通过这些功能被认为是挽救并返回一个意想不到的结果。考虑以下几点:

parseInt("1,000"); // -> 1, not 1000 
+"1,000";   // -> NaN, easier to detect when there's a problem 

额外的阅读

+0

010号码不是字符串么? parseInt(),数字+不起作用 – 2017-01-10 13:04:19

使用parseInt()radix参数。这将禁用基础的自动检测(0领先 - >八进制,0x开头 - >十六进制):

var number = parseInt('08', 10); 
// number is now 8 
+1

基数参数是一个我总是有时会忘记。 +1 – kjy112 2011-02-08 13:59:03

可以使用parseInt();以10为底或parseFloat();解析浮点数

使用parseInt函数。参考:link