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


当前回答

如果您使用parseInt将浮点转换为科学符号,请小心!例如:

parseInt("5.6e-14") 

将导致

5 

而不是

0

其他回答

还有一个附带说明:MooTools有一个函数toInt(),用于任何本机字符串(或浮点(或整数))。

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

要将字符串转换为整数,我建议使用parseFloat而不是parseInt。原因如下:

使用parseFloat:

parseFloat('2.34cms')  //Output: 2.34
parseFloat('12.5')     //Output: 12.5
parseFloat('012.3')    //Output: 12.3

使用parseInt:

parseInt('2.34cms')  //Output: 2
parseInt('12.5')     //Output: 12
parseInt('012.3')    //Output: 12

因此,如果您注意到parseInt丢弃小数后的值,而parseFloat允许您处理浮点数字,因此如果您希望保留小数后的数值,则更适合。当且仅当您确定需要整数值时,才使用parseInt。

最简单的方法是使用本机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)

函数doSth(){var a=document.getElementById('input').value;document.getElementById('number').innerHTML=toNumber(a)+1;}函数toNumber(str){return+str;}<input id=“input”type=“text”><input onclick=“doSth()”type=“submit”><span id=“number”></span>

前面的所有答案都是正确的。请先通过“typeot x==='number'”确认这是字符串中的数字。否则,它将返回NaN。

 var num = "fsdfsdf242342";
 typeof num => 'string';

 var num1 = "12423";
 typeof num1 => 'number';
 +num1 = > 12423`