How do I Convert a String into an Integer in JavaScript?

How do I convert a string into an integer in JavaScript?

Is it possible to do this automatically, or do I have to write a subroutine to do it manually?

asked May 19, 2015 in JAVASCRIPT by rajesh
0 votes

3 Answers

0 votes

parseInt or unary plus or even parseFloat with floor or Math.round


var x = parseInt("1000",10); // you want to use radix
    // of 10 so you get a decimal number even with a leading 0

unary plus if your string is already in the form of an integer:

var x = +"1000";

if your string is or might be a float and you want an integer:

var x = Math.floor("1000.01"); //floor automatically converts string to number

or, if you're going to be using Math.floor several times:

var floor = Math.floor;
var x = floor("1000.01");

If you're the type who forgets to put the radix in when you call parseInt, you can use parseFloat and round it however you like. Here I use floor.

var floor = Math.floor;
var x = floor(parseFloat("1000.01"));

Interestingly, Math.round (like Math.floor) will do a string to number conversion, so if you want the number rounded (or if you have an integer in the string), this is a great way, maybe my favorite:

var round = Math.round;
var x = round("1000"); //equivalent to round("1000",0)

You don't see this much. valueOf is used mostly internally, according to w3c

var x = "1000".valueOf();
answered May 19, 2015 by rajesh
0 votes

Try parseInt function:

var number = parseInt("10");

But there is a problem. If you try to convert "010" using parseInt function, it detects as octal number, and will return number 8. So, you need to specify a radix (from 2 to 36). In this case base 10.

parseInt(string, radix)


var result = parseInt("010", 10) == 10; // Returns true

var result = parseInt("010") == 10; // Returns false
answered May 19, 2015 by rajesh
0 votes

ParseInt() and + are different

parseInt("10.3456") // returns 10

+"10.3456" // returns 10.3456
answered May 19, 2015 by rajesh