I know that we can extract an integer value from a string using
var x = "> 1";
x = parseInt(x.match(/\d+/)[0], 10));
How do I get a float value from a string
example: var x = "> 1.1"
I know we can just use x.substring(2);
But for a more generic solution? since the above will not give the accurate result for
var x = "1.1"
So what is the best way to extract the float value 1.1
from
var x = "> 1.1"
I know that we can extract an integer value from a string using
var x = "> 1";
x = parseInt(x.match(/\d+/)[0], 10));
How do I get a float value from a string
example: var x = "> 1.1"
I know we can just use x.substring(2);
But for a more generic solution? since the above will not give the accurate result for
var x = "1.1"
So what is the best way to extract the float value 1.1
from
var x = "> 1.1"
Share
Improve this question
edited Feb 7, 2014 at 18:27
user544079
asked Feb 7, 2014 at 18:15
user544079user544079
16.6k42 gold badges120 silver badges172 bronze badges
1
-
1
How about
/\d+\.?\d*/
– Matt Burland Commented Feb 7, 2014 at 18:18
4 Answers
Reset to default 5Use parseFloat
and a regular expression that matches a number with optional decimals and minus sign.
var f = parseFloat(x.match(/-?(?:\d+(?:\.\d*)?|\.\d+)/)[0]);
You can try the following one to extract only numbers like floating or integer as an array as many as you want using the match function.
str = 'On schedule: 3243.8 miles away (4491 minutes)';
values = str.match(/[0-9.]+/g); //=> ["3243.8", "4491"]
x = parseFloat(x.match(/[-+]?([0-9]*\.[0-9]+|[0-9]+)/));
Use parseFloat(). It does exactly what you're looking for.