Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
parseFloat()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
DieparseFloat()-Funktion analysiert ein String-Argument und gibt eine Gleitkommazahl zurück.
In diesem Artikel
Probieren Sie es aus
function circumference(r) { return parseFloat(r) * 2.0 * Math.PI;}console.log(circumference(4.567));// Expected output: 28.695307297889173console.log(circumference("4.567abcdefgh"));// Expected output: 28.695307297889173console.log(circumference("abcdefgh"));// Expected output: NaNSyntax
parseFloat(string)Parameter
stringDer zu analysierende Wert,erzwingt die Umwandlung in einen String. FührendeLeerzeichen in diesem Argument werden ignoriert.
Rückgabewert
Eine Gleitkommazahl, die aus dem gegebenenstring analysiert wurde, oderNaN, wenn das erste Nicht-Leerzeichen-Zeichen nicht in eine Zahl umgewandelt werden kann.
Hinweis:JavaScript unterscheidet auf Sprachebene nicht zwischen "Gleitkommazahlen" und "Ganzzahlen".parseInt() undparseFloat() unterscheiden sich nur in ihrem Analyseverhalten, aber nicht notwendigerweise in ihren Rückgabewerten. Beispielsweise würdenparseInt("42") undparseFloat("42") denselben Wert zurückgeben: eineNumber 42.
Beschreibung
DieparseFloat-Funktion konvertiert ihr erstes Argument in einen String, analysiert diesen String als ein Dezimalzahlen-Literal und gibt dann eine Zahl oderNaN zurück. Die von ihr akzeptierte Zahlensyntax lässt sich wie folgt zusammenfassen:
- Die von
parseFloat()akzeptierten Zeichen sind das Pluszeichen (+), das Minuszeichen (-U+002D HYPHEN-MINUS), Dezimalziffern (0–9), der Dezimalpunkt (.), das Exponentenzeichen (eoderE) und das Literal"Infinity". - Die
+/-Zeichen können nur streng am Anfang des Strings oder unmittelbar nach deme/EZeichen erscheinen. Der Dezimalpunkt kann nur einmal und nur vor deme/EZeichen erscheinen. Dase/EZeichen kann nur einmal erscheinen und nur, wenn mindestens eine Ziffer davor vorhanden ist. - Führende Leerzeichen im Argument werden abgeschnitten und ignoriert.
parseFloat()kann auchInfinityoder-Infinityanalysieren und zurückgeben, wenn der String mit"Infinity"oder"-Infinity"beginnt, denen keine oder mehr Leerzeichen vorangestellt sind.parseFloat()wählt das längste Teilstring ausgehend vom Anfang, das ein gültiges Zahlenliteral erzeugt. Wenn es auf ein ungültiges Zeichen stößt, gibt es die Zahl zurück, die bis zu diesem Punkt dargestellt wurde, und ignoriert das ungültige Zeichen sowie alle folgenden Zeichen.- Wenn das erste Zeichen des Arguments kein legales Zahlenliteral gemäß obiger Syntax beginnen kann, gibt
parseFloatNaNzurück.
Syntaxmäßig analysiertparseFloat() ein Teilset der Syntax, das dieNumber()-Funktion akzeptiert. Namentlich unterstütztparseFloat() keine nicht-dezimalen Literale mit0x,0b oder0o Präfixen, unterstützt aber alles andere.parseFloat() ist jedoch toleranter alsNumber(), da es nachgestellte ungültige Zeichen ignoriert, dieNumber() dazu bringen würden,NaN zurückzugeben.
Ähnlich wie Zahlenliterale undNumber(), kann die vonparseFloat() zurückgegebene Zahl nicht genau der Zahl entsprechen, die durch den String dargestellt wird, aufgrund von Gleitkomma-Bereich und Ungenauigkeit. Bei Zahlen außerhalb des-1.7976931348623158e+308 –1.7976931348623158e+308 Bereichs (sieheNumber.MAX_VALUE) wird-Infinity oderInfinity zurückgegeben.
Beispiele
>Verwendung von parseFloat()
Die folgenden Beispiele geben alle3.14 zurück:
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 gibtNaN zurück:
parseFloat("FF2");Anekdotisch, da der StringNaN selbst eine ungültige Syntax ist, wie sie vonparseFloat() akzeptiert wird, liefert das Übergeben von"NaN" ebenfallsNaN.
parseFloat("NaN"); // NaNRückgabe von Infinity
Infinity-Werte werden zurückgegeben, wenn die Zahl außerhalb des Bereichs des Doppelpräzisions-64-Bit IEEE 754-2019-Formats liegt:
parseFloat("1.7976931348623159e+308"); // InfinityparseFloat("-1.7976931348623159e+308"); // -InfinityInfinity wird auch zurückgegeben, wenn der String mit"Infinity" oder"-Infinity" beginnt:
parseFloat("Infinity"); // InfinityparseFloat("-Infinity"); // -InfinityInteraktion mit BigInt-Werten
parseFloat() verarbeitet keineBigInt-Werte. Es stoppt amn-Zeichen und behandelt den vorhergehenden String als normale ganze Zahl, mit möglichem Präzisionsverlust. Wenn ein BigInt-Wert anparseFloat() übergeben wird, wird er in einen String konvertiert, und der String wird als Gleitkommazahl analysiert, was ebenfalls zu einem Präzisionsverlust führen kann.
parseFloat(900719925474099267n); // 900719925474099300parseFloat("900719925474099267n"); // 900719925474099300Sie sollten den String an dieBigInt()-Funktion übergeben, ohne das nachgestellten-Zeichen.
BigInt("900719925474099267");// 900719925474099267nSpezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-parsefloat-string> |