Start · Sprachen · JavaScript · Referenz · parseFloat()

parseFloat()

Funktion

Die Funktion <code>parseFloat()</code> parst ein String-Argument und gibt eine Fließkommazahl zurück.

seit JavaScript ES1 Kategorie: core

Signatur

parseFloat(string)

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 (09), Dezimalpunkt (.), Exponentenkennzeichen (e oder E) sowie das Literal "Infinity".
  • Die Zeichen +/- dürfen nur ganz am Anfang des Strings oder unmittelbar nach dem e/E-Zeichen erscheinen. Der Dezimalpunkt darf nur einmal auftreten und nur vor dem e/E-Zeichen. Das e/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ßerdem Infinity oder -Infinity parsen 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 parseFloat NaN zurü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+3081.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

Typ
number
Beschreibung
Eine aus dem angegebenen 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";
  },
});
3.14

parseFloat() gibt NaN zurück

parseFloat("FF2");
NaN

"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

JavaScript unterscheidet auf Sprachebene nicht zwischen „Fließkommazahlen" und „Ganzzahlen". 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.