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?
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?
Try parseInt.
var number = parseInt("10", 10); //number will have value of 10.
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)
Example:
var result = parseInt("010", 10) == 10; // Returns true
var result = parseInt("010") == 10; // Returns false
parseInt or unary plus or even parseFloat with floor or Math.round
parseInt:
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();
Also as a side note: Mootools has the function toInt() which is used on any native string (or float (or integer)).
"2".toInt() // 2
"2px".toInt() // 2
2.toInt() // 2
Beware if you use parseInt to convert a float in scientific notation! For example: parseInt("5.6e-14") will result in 5 instead of 0