Signatur
Beschreibung
Die Funktion parseFloat() parst ein String-Argument und gibt eine Fließkommazahl zurück.
Die Funktion parseFloat wandelt ihr erstes Argument in einen String um, parst diesen String als dezimales Zahlenliteral und gibt anschließend eine Zahl oder NaN zurück. Die akzeptierte Zahlensyntax lässt sich wie folgt zusammenfassen:
- Die von
parseFloat()akzeptierten Zeichen sind Pluszeichen (+), Minuszeichen (-U+002D HYPHEN-MINUS), Dezimalziffern (0–9), Dezimalpunkt (.), Exponentenkennzeichen (eoderE) sowie das Literal"Infinity". - Die Zeichen
+/-dürfen nur ganz am Anfang des Strings oder unmittelbar nach deme/E-Zeichen erscheinen. Der Dezimalpunkt darf nur einmal auftreten und nur vor deme/E-Zeichen. Dase/E-Zeichen darf nur einmal auftreten und nur, wenn mindestens eine Ziffer davor steht. - Führende Leerzeichen im Argument werden entfernt und ignoriert.
parseFloat()kann außerdemInfinityoder-Infinityparsen und zurückgeben, wenn der String mit"Infinity"oder"-Infinity"beginnt, optional vorangestellt durch beliebig viele Leerzeichen.parseFloat()wählt den längsten Teilstring vom Anfang aus, der ein gültiges Zahlenliteral ergibt. Trifft es auf ein ungültiges Zeichen, gibt es die bis zu diesem Punkt dargestellte Zahl zurück und ignoriert das ungültige Zeichen sowie alle folgenden Zeichen.- Wenn das erste Zeichen des Arguments kein gültiges Zahlenliteral gemäß der obigen Syntax beginnen kann, gibt
parseFloatNaNzurück.
Syntaktisch parst parseFloat() eine Teilmenge der von der Funktion Number() akzeptierten Syntax. Insbesondere unterstützt parseFloat() keine nicht-dezimalen Literale mit den Präfixen 0x, 0b oder 0o, unterstützt aber alles Übrige. parseFloat() ist jedoch nachsichtiger als Number(), da es nachfolgende ungültige Zeichen ignoriert, während Number() in solchen Fällen NaN zurückgeben würde.
Ähnlich wie bei Zahlenliteralen und Number() ist die von parseFloat() zurückgegebene Zahl aufgrund von Fließkomma-Bereich und -Ungenauigkeit möglicherweise nicht exakt gleich der durch den String dargestellten Zahl. Für Zahlen außerhalb des Bereichs -1.7976931348623158e+308 – 1.7976931348623158e+308 (siehe Number.MAX_VALUE) wird -Infinity bzw. Infinity zurückgegeben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $string Pflicht | string | — | Der zu parsende Wert, der in einen String umgewandelt wird. Führender Whitespace in diesem Argument wird ignoriert. |
Rückgabewert
string geparste Fließkommazahl oder NaN, wenn das erste Nicht-Whitespace-Zeichen nicht in eine Zahl umgewandelt werden kann.Beispiele
parseFloat() verwenden
parseFloat(3.14);
parseFloat("3.14");
parseFloat(" 3.14 ");
parseFloat("314e-2");
parseFloat("0.0314E+2");
parseFloat("3.14some non-digit characters");
parseFloat({
toString() {
return "3.14";
},
});
parseFloat() gibt NaN zurück
parseFloat("FF2");
"NaN" als Eingabe
parseFloat("NaN"); // NaN
Infinity zurückgeben
parseFloat("1.7976931348623159e+308"); // Infinity
parseFloat("-1.7976931348623159e+308"); // -Infinity
Infinity aus String
parseFloat("Infinity"); // Infinity
parseFloat("-Infinity"); // -Infinity
Interaktion mit BigInt-Werten
parseFloat(900719925474099267n); // 900719925474099300
parseFloat("900719925474099267n"); // 900719925474099300
Stattdessen BigInt() verwenden
BigInt("900719925474099267");
// 900719925474099267n
// Wichtig · Fallstricke
parseInt() und parseFloat() unterscheiden sich nur in ihrem Parse-Verhalten, aber nicht zwangsläufig in ihren Rückgabewerten. Zum Beispiel geben parseInt("42") und parseFloat("42") denselben Wert zurück: eine Number 42.