HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
View in English Always switch to English
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die parseFloat()-Funktion analysiert ein String-Argument und gibt eine Gleitkommazahl zurück.
parseFloat()
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
parseFloat(string)
string
Der zu analysierende Wert, erzwingt die Umwandlung in einen String. Führende Leerzeichen in diesem Argument werden ignoriert.
Eine Gleitkommazahl, die aus dem gegebenen string analysiert wurde, oder NaN, wenn das erste Nicht-Leerzeichen-Zeichen nicht in eine Zahl umgewandelt werden kann.
NaN
Hinweis: JavaScript unterscheidet auf Sprachebene nicht zwischen "Gleitkommazahlen" und "Ganzzahlen". parseInt() und parseFloat() unterscheiden sich nur in ihrem Analyseverhalten, aber nicht notwendigerweise in ihren Rückgabewerten. Beispielsweise würden parseInt("42") und parseFloat("42") denselben Wert zurückgeben: eine Number 42.
parseInt()
parseInt("42")
parseFloat("42")
Number
Die parseFloat-Funktion konvertiert ihr erstes Argument in einen String, analysiert diesen String als ein Dezimalzahlen-Literal und gibt dann eine Zahl oder NaN zurück. Die von ihr akzeptierte Zahlensyntax lässt sich wie folgt zusammenfassen:
parseFloat
+
-
0
9
.
e
E
"Infinity"
Infinity
-Infinity
"-Infinity"
Syntaxmäßig analysiert parseFloat() ein Teilset der Syntax, das die Number()-Funktion akzeptiert. Namentlich unterstützt parseFloat() keine nicht-dezimalen Literale mit 0x, 0b oder 0o Präfixen, unterstützt aber alles andere. parseFloat() ist jedoch toleranter als Number(), da es nachgestellte ungültige Zeichen ignoriert, die Number() dazu bringen würden, NaN zurückzugeben.
Number()
0x
0b
0o
Ähnlich wie Zahlenliterale und Number(), kann die von parseFloat() 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 (siehe Number.MAX_VALUE) wird -Infinity oder Infinity zurückgegeben.
-1.7976931348623158e+308
1.7976931348623158e+308
Number.MAX_VALUE
Die folgenden Beispiele geben alle 3.14 zurück:
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() { return "3.14"; }, });
Das folgende Beispiel gibt NaN zurück:
parseFloat("FF2");
Anekdotisch, da der String NaN selbst eine ungültige Syntax ist, wie sie von parseFloat() akzeptiert wird, liefert das Übergeben von "NaN" ebenfalls NaN.
"NaN"
parseFloat("NaN"); // NaN
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"); // Infinity parseFloat("-1.7976931348623159e+308"); // -Infinity
Infinity wird auch zurückgegeben, wenn der String mit "Infinity" oder "-Infinity" beginnt:
parseFloat("Infinity"); // Infinity parseFloat("-Infinity"); // -Infinity
parseFloat() verarbeitet keine BigInt-Werte. Es stoppt am n-Zeichen und behandelt den vorhergehenden String als normale ganze Zahl, mit möglichem Präzisionsverlust. 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.
BigInt
n
parseFloat(900719925474099267n); // 900719925474099300 parseFloat("900719925474099267n"); // 900719925474099300
Sie sollten den String an die BigInt()-Funktion übergeben, ohne das nachgestellte n-Zeichen.
BigInt()
BigInt("900719925474099267"); // 900719925474099267n
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Number.parseFloat()
Number.parseInt()
Number.prototype.toFixed()