DEV Community

Himanshu Gupta
Himanshu Gupta

Posted on

2

7 ways to convert a String to Number in JavaScript

1. Using parseInt()
parseInt() parses a string and returns a whole number. Spaces are allowed. Only the first number is returned.
This method has a limitation though. If you parse the decimal number, it will be rounded off to the nearest integer value and that value is converted to string. One might need to use parseFloat() method for literal conversion.

myString = '129' 
console.log(parseInt(myString)) // expected result: 129
a = 12.22
console.log(parseInt(a)) // expected result: 12
Enter fullscreen mode Exit fullscreen mode

2. Using Number()
Number() can be used to convert JavaScript variables to numbers. We can use it to convert the string too number.
If the value cannot be converted to a number, NaN is returned.

Number("10");          // returns 10
Number(" 10  ");       // returns 10
Number("10.33");       // returns 10.33
Enter fullscreen mode Exit fullscreen mode

3. Using Unary Operator (+)
The unary plus operator (+) precedes its operand and evaluates to its operand but attempts to convert it into a number, if it isn't already.

const x = 25;
const y = -25;
console.log(+x); // expected output: 25
console.log(+y); // expected output: -25
console.log(+''); // expected output: 0
Enter fullscreen mode Exit fullscreen mode

4. Using parseFloat()
parseFloat() parses a string and returns a number. Spaces are allowed. Only the first number is returned.

parseFloat("10");        // returns 10
parseFloat("10.33");     // returns 10.33
parseFloat("10 20 30");  // returns 10
parseFloat("10 years");  // returns 10
parseFloat("years 10");  // returns NaN
Enter fullscreen mode Exit fullscreen mode

5. Using Math.floor()
The Math.floor() function returns the largest integer less than or equal to a given number. This can be little tricky with decimal numbers since it will return the value of the nearest integer as Number.

str = '1222'
console.log(Math.floor(str)) // returns 1222
a = 12.22
Math.floor(a) // expected result: 12
Enter fullscreen mode Exit fullscreen mode

6. Multiply with number
Multiplying the string value with the 1 which wonโ€™t change the value and also it will be converted to number by default.

str = '2344'
console.log(str * 1) // expected result: 2344
Enter fullscreen mode Exit fullscreen mode

7. Double tilde (~~) Operator
We can use the double tilde operator to convert the string to number.

str = '1234'
console.log(~~str) // expected result: 1234
negStr = '-234'
console.log(~~negStr) // expected result: -234
Enter fullscreen mode Exit fullscreen mode

Image of Timescale

๐Ÿš€ pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applicationsโ€”without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more โ†’

Top comments (2)

Collapse
 
jonrandy profile image
Jon Randy ๐ŸŽ–๏ธ โ€ข โ€ข Edited

Using ~~ suffers from a similar issue to Math.floor with regard to decimals - it will simply cut the decimal part instead of rounding down to the nearest integer. Math.trunc will also do this:

~~"234.5"  // 234
~~"-234.5"  // -234

Math.trunc("234.5")  // 234
Math.trunc("-234.5")  // -234

Math.floor("234.5")  // 234
Math.floor("-234.5")  // -235
Enter fullscreen mode Exit fullscreen mode
Collapse
 
himanshudevgupta profile image
Himanshu Gupta โ€ข

Thankyou this is helpfull for me.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more