The parseFloat()
function parses an argument (converting it to a string first if needed) and returns a floating point number.
Syntax
parseFloat(string)
Parameters
string
- The value to parse. If this argument is not a string, then it is converted to one using the
ToString
abstract operation. Leading whitespace in this argument is ignored.
Return value
A floating point number parsed from the given string
.
Or NaN
when the first non-whitespace character cannot be converted to a number.
Description
parseFloat
is a top-level function and not a method of any object.
- If
parseFloat
encounters a character other than a plus sign (+
), minus sign (-
U+002D HYPHEN-MINUS), numeral (0
–9
), decimal point (.
), or exponent (e
orE
), it returns the value up to that character, ignoring the invalid character and characters following it. - A second decimal point also stops parsing (characters up to that point will still be parsed).
- Leading and trailing spaces in the argument are ignored.
- If the argumentโs first character canโt be converted to a number (itโs not any of the above characters),
parseFloat
returnsNaN
. parseFloat
can also parse and returnInfinity
.parseFloat
convertsBigInt
syntax toNumbers
, losing precision. This happens because the trailingn
character is discarded.
Consider Number(value)
for stricter parsing, which converts to NaN
for arguments with invalid characters anywhere.
parseFloat
will parse non-string objects if they have a toString
or valueOf
method. The returned value is the same as if parseFloat
had been called on the result of those methods.
Examples
parseFloat
returning a number
The following examples all return 3.14
:
parseFloat(3.14); parseFloat('3.14'); parseFloat(' 3.14 '); parseFloat('314e-2'); parseFloat('0.0314E+2'); parseFloat('3.14some non-digit characters'); parseFloat({ toString: function() { return "3.14" } });
parseFloat
returning NaN
The following example returns NaN
:
parseFloat('FF2');
parseFloat
and BigInt
The following examples both return 900719925474099300
, losing precision as the integer is too large to be represented as a float:
parseFloat(900719925474099267n); parseFloat('900719925474099267n');
Specifications
Specification |
---|
ECMAScript (ECMA-262) The definition of 'parseFloat' in that specification. |
Browser compatibility
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
parseFloat | Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | IE Full support 3 | Opera Full support 3 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox Android Full support 4 | Opera Android Full support 10.1 | Safari iOS Full support 1 | Samsung Internet Android Full support 1.0 | nodejs Full support 0.1.100 |
Legend
- Full support
- Full support