parseFloat()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die parseFloat()-Funktion analysiert ein String-Argument und gibt eine Gleitkommazahl zurück.

Probieren Sie es aus

function circumference(r) {
  return parseFloat(r) * 2.0 * Math.PI;
}

console.log(circumference(4.567));
// Expected output: 28.695307297889173

console.log(circumference("4.567abcdefgh"));
// Expected output: 28.695307297889173

console.log(circumference("abcdefgh"));
// Expected output: NaN

Syntax

js
parseFloat(string)

Parameter

string

Der zu analysierende Wert, in einen String umgewandelt. Führende Leerzeichen in diesem Argument werden ignoriert.

Rückgabewert

Eine aus dem gegebenen string analysierte Gleitkommazahl oder NaN, wenn das erste Nicht-Leerzeichen-Zeichen nicht in eine Zahl umgewandelt werden kann.

Hinweis: JavaScript unterscheidet auf Sprachebene nicht zwischen "Gleitkommazahlen" und "Ganzzahlen". parseInt() und parseFloat() unterscheiden sich nur im Analyseverhalten, aber nicht zwingend in ihren Rückgabewerten. Zum Beispiel würden parseInt("42") und parseFloat("42") denselben Wert zurückgeben: eine Number 42.

Beschreibung

Die Funktion parseFloat konvertiert ihr erstes Argument in einen String, analysiert diesen String als ein literales Dezimalzahlensystem und gibt dann eine Zahl oder NaN zurück. Die von ihr akzeptierte Syntax von Zahlen kann wie folgt zusammengefasst werden:

  • Die von parseFloat() akzeptierten Zeichen sind Pluszeichen (+), Minuszeichen (- U+002D HYPHEN-MINUS), Dezimalziffern (09), Dezimalpunkt (.), Exponentenzeichen (e oder E) und das Literal "Infinity".
  • Die Zeichen +/- können nur streng am Anfang des Strings oder direkt nach dem Zeichen e/E erscheinen. Der Dezimalpunkt kann nur einmal und nur vor dem Zeichen e/E erscheinen. Das Zeichen e/E kann ebenfalls nur einmal erscheinen und nur, wenn davor mindestens eine Ziffer vorhanden ist.
  • Führende Leerzeichen im Argument werden entfernt und ignoriert.
  • parseFloat() kann auch Infinity oder -Infinity analysieren und zurückgeben, wenn der String mit "Infinity" oder "-Infinity" beginnt, vorausgesetzt, davor stehen keine oder beliebig viele Leerzeichen.
  • parseFloat() wählt die längste Teilfolge vom Anfang, die ein gültiges Zahlenliteral ergibt. Wenn es ein ungültiges Zeichen trifft, gibt es die Zahl zurück, die bis zu diesem Punkt dargestellt wurde, und ignoriert das ungültige Zeichen sowie alle nachfolgenden Zeichen.
  • Wenn das erste Zeichen des Arguments kein zulässiges Zahlenliteral starten kann, gibt parseFloat NaN zurück.

Syntaxtechnisch analysiert parseFloat() eine Teilmenge der Syntax, die die Number()-Funktion akzeptiert. Namentlich unterstützt parseFloat() keine nicht-dezimalen Literale mit den Präfixen 0x, 0b oder 0o, unterstützt jedoch alles andere. Im Gegensatz dazu ist parseFloat() nachsichtiger als Number(), da es nachfolgende ungültige Zeichen ignoriert, die Number() dazu veranlassen würden, NaN zurückzugeben.

Ähnlich wie bei Zahlenliteralen und Number() entspricht die von parseFloat() zurückgegebene Zahl möglicherweise nicht genau der Zahl, die durch den String dargestellt wird, aufgrund des Gleitkommadatenbereichs und der Ungenauigkeit. Für Zahlen außerhalb des Bereichs -1.7976931348623158e+3081.7976931348623158e+308 (siehe Number.MAX_VALUE) wird -Infinity oder Infinity zurückgegeben.

Beispiele

Verwendung von parseFloat()

Die folgenden Beispiele geben alle 3.14 zurück:

js
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

Das folgende Beispiel gibt NaN zurück:

js
parseFloat("FF2");

Anmerkung: Da der String NaN selbst eine ungültige Syntax ist, wie sie von parseFloat() akzeptiert wird, gibt auch das Übergeben von "NaN" NaN zurück.

js
parseFloat("NaN"); // NaN

Rückgabe von Infinity

"Wertbereiche außerhalb des Bereichs des Double-Precision-64-Bit-IEEE-754-2019-Formats" erzeugen Unendlichkeitswerte:

js
parseFloat("1.7976931348623159e+308"); // Infinity
parseFloat("-1.7976931348623159e+308"); // -Infinity

Infinity wird auch zurückgegeben, wenn der String mit "Infinity" oder "-Infinity" beginnt:

js
parseFloat("Infinity"); // Infinity
parseFloat("-Infinity"); // -Infinity

Interaktion mit BigInt-Werten

parseFloat() verarbeitet keine BigInt-Werte. Es stoppt am Zeichen n und behandelt die vorangehenden Zeichen als eine normale Ganzzahl, was zu einem möglichen Präzisionsverlust führen kann. Wenn ein BigInt-Wert an parseFloat() übergeben wird, wird er in einen String konvertiert, und der String wird als Gleitkommazahl analysiert, was ebenfalls zu einem Präzisionsverlust führen kann.

js
parseFloat(900719925474099267n); // 900719925474099300
parseFloat("900719925474099267n"); // 900719925474099300

Sie sollten den String stattdessen an die BigInt()-Funktion übergeben, ohne das abschließende n-Zeichen.

js
BigInt("900719925474099267");
// 900719925474099267n

Spezifikationen

Specification
ECMAScript® 2025 Language Specification
# sec-parsefloat-string

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
parseFloat

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch