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 Zeichenkettenargument und gibt eine Gleitkommazahl zurück.
Probieren Sie es aus
Syntax
parseFloat(string)
Parameter
string
-
Der zu analysierende Wert, in eine Zeichenkette umgewandelt. Führende Leerzeichen in diesem Argument werden ignoriert.
Rückgabewert
Eine Gleitkommazahl, die aus der gegebenen string
analysiert wurde, oder NaN
, wenn das erste Nicht-Leerzeichenzeichen nicht in eine Zahl umgewandelt werden kann.
Hinweis:
JavaScript unterscheidet auf Sprachebene nicht zwischen "Gleitkommazahlen" und "Ganzzahlen". parseInt()
und parseFloat()
unterscheiden sich nur in ihrem Analyseverhalten, aber nicht unbedingt in ihren Rückgabewerten. Zum Beispiel würden parseInt("42")
und parseFloat("42")
denselben Wert zurückgeben: eine Number
42.
Beschreibung
Die parseFloat
Funktion konvertiert ihr erstes Argument in eine Zeichenkette, analysiert diese Zeichenkette als dezimale Zahlenliterale und gibt dann eine Zahl oder NaN
zurück. Die akzeptierte Zahlensyntax kann wie folgt zusammengefasst werden:
- Die von
parseFloat()
akzeptierten Zeichen sind Pluszeichen (+
), Minuszeichen (-
U+002D HYPHEN-MINUS), Dezimalziffern (0
–9
), Dezimalpunkt (.
), Exponentenzeichen (e
oderE
) und das"Infinity"
Literal. - Die
+
/-
Zeichen können nur strikt am Anfang der Zeichenkette oder unmittelbar nach deme
/E
Zeichen erscheinen. Der Dezimalpunkt kann nur einmal und nur vor deme
/E
Zeichen erscheinen. Dase
/E
Zeichen kann nur einmal erscheinen und nur, wenn sich mindestens eine Ziffer davor befindet. - Führende Leerzeichen im Argument werden abgeschnitten und ignoriert.
parseFloat()
kann auchInfinity
oder-Infinity
analysieren und zurückgeben, wenn die Zeichenkette mit"Infinity"
oder"-Infinity"
beginnt, gefolgt von keinen oder mehreren Leerzeichen.parseFloat()
wählt das längste Teilstück, das von Anfang an einen gültigen Zahlenliteral erzeugt. Wenn es auf ein ungültiges Zeichen stößt, gibt es die Zahl zurück, die bis zu diesem Punkt dargestellt wird, und ignoriert das ungültige Zeichen und alle folgenden Zeichen.- Wenn das erste Zeichen des Arguments keinen legalen Zahlenliteral nach der obigen Syntax starten kann, gibt
parseFloat
NaN
zurück.
Syntaxmäßig analysiert parseFloat()
einen Teil der Syntax, den die Number()
Funktion akzeptiert. Nämlich unterstützt parseFloat()
keine nicht-dezimale Literale mit den Präfixen 0x
, 0b
oder 0o
, aber unterstützt alles andere. parseFloat()
ist jedoch nachgiebiger als Number()
, da es nachfolgende ungültige Zeichen ignoriert, die Number()
dazu veranlassen würden, NaN
zurückzugeben.
Ähnlich wie bei Zahlenliteralen und Number()
kann die von parseFloat()
zurückgegebene Zahl nicht genau der Zahl entsprechen, die durch die Zeichenkette dargestellt wird, aufgrund von Gleitkommabereich und Ungenauigkeit. Für Zahlen außerhalb des Bereichs -1.7976931348623158e+308
– 1.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:
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:
parseFloat("FF2");
Angeekdotet, da die Zeichenkette NaN
selbst eine ungültige Syntax ist, wie sie von parseFloat()
akzeptiert wird, gibt auch das Übergeben von "NaN"
NaN
zurück.
parseFloat("NaN"); // NaN
Rückgabe von Infinity
Unendlichkeit wird 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
Unendlichkeit wird auch zurückgegeben, wenn die Zeichenkette mit "Infinity"
oder "-Infinity"
beginnt:
parseFloat("Infinity"); // Infinity
parseFloat("-Infinity"); // -Infinity
Interaktion mit BigInt-Werten
parseFloat()
verarbeitet keine BigInt
Werte. Es stoppt beim n
Zeichen und behandelt die voranstehende Zeichenkette als normale Ganzzahl, was zu einem möglichen Präzisionsverlust führt. Wenn ein BigInt-Wert an parseFloat()
übergeben wird, wird er in eine Zeichenkette konvertiert, und die Zeichenkette wird als Gleitkommazahl analysiert, was ebenfalls zu einem Präzisionsverlust führen kann.
parseFloat(900719925474099267n); // 900719925474099300
parseFloat("900719925474099267n"); // 900719925474099300
Sie sollten die Zeichenkette stattdessen an die BigInt()
Funktion übergeben, ohne das abschließende n
Zeichen.
BigInt("900719925474099267");
// 900719925474099267n
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-parsefloat-string |
Browser-Kompatibilität
BCD tables only load in the browser