DEV Community

Cover image for Best Ways to Convert a String to Number in Javascript
Arthur Dao
Arthur Dao

Posted on • Originally published at hadev.fr

Best Ways to Convert a String to Number in Javascript

Converting a string to number (or a number to string) might be one of the most common operations in Javascript. There are always several ways to convert a string to number, what is the best one?

parseInt()

The parseInt() function parses a string argument and returns an integer of the specified radix (the base in mathematical numeral systems).

console.log(parseInt("42"));
// expected output: 42

console.log(parseInt("42abc"));
// expected output: 42

parseInt() can also convert non-decimal numbers by using the second optional parameter.

console.log(parseInt("f", 16));
// expected output: 15

console.log(parseInt("0xf"));
// we don't need to pass the second parameter because parseInt
// detect the prefix "0x" which means the number is hexadecimal
// expected output: 15

parseFloat()

The parseFloat() function parses an argument (converting it to a string first if needed) and returns a floating point number.

console.log(parseFloat(4.23));
// expected output: 4.23

console.log(parseFloat('4.23abc'));
// expected output: 4.23

console.log(parseFloat('abc'));
// expected output: NaN

Number()

Number is a Javascript built-in object. It can be used to convert string to integer or floating point number.

console.log(Number("42"));
// expected output: 42

console.log(Number("42.3"));
// expected output 42.3

However, it cannot handle trailing non-numeric characters like parseInt or parseFloat

console.log(Number("42abc"));
// expected output: NaN

console.log(Number("42.3abc"));
// expected output NaN

Mutiply by 1

Using the feature of Javascript of assimilating data types, we can convert a string to number easily.

console.log("42" * 1);
// expected output: 42

console.log("42.3" * 1);
// expected output 42.3

Just like Number, this method cannot handle trailing non-numeric characters.

Unary operator '+'

This might be the simplest way to convert a string to number in Javascript even though it's not very well-known.

console.log(+"42");
// expected output: 42

console.log(+"42.3");
// expected output 42.3

Same as the 2 approches above, this approach cannot handle trailing non-numeric characters.

Conclusion

All the methods have cons and pros, make sure to choose the one that fit your need, your team and your work environment.

Top comments (2)

Collapse
 
miketalbot profile image
Mike Talbot ⭐

I usually use +myString or really probably +myStringOrNumberImNotQuiteSureDependsOnUserInput

I also discovered:

var flooredNumber = someNumber | 0 recently which is slightly faster than Math.floor()

Collapse
 
newbiebr profile image
Arthur Dao

Thanks for sharing!

+ is my preferred one too. The only problem with + is it does not handle trailing character like:

console.log(+"42a"); // output: NaN