Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. parseFloat()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

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.

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: NaN

Syntax

js
parseFloat(string)

Parameter

string

Der 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 vonparseFloat() akzeptierten Zeichen sind das Pluszeichen (+), das Minuszeichen (- U+002D HYPHEN-MINUS), Dezimalziffern (09), der Dezimalpunkt (.), das Exponentenzeichen (e oderE) und das Literal"Infinity".
  • Die+/- Zeichen können nur streng am Anfang des Strings 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 mindestens eine Ziffer davor vorhanden ist.
  • Führende Leerzeichen im Argument werden abgeschnitten und ignoriert.
  • parseFloat() kann auchInfinity oder-Infinity analysieren 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, gibtparseFloatNaN zurü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+3081.7976931348623158e+308 Bereichs (sieheNumber.MAX_VALUE) wird-Infinity oderInfinity zurückgegeben.

Beispiele

Verwendung von parseFloat()

Die folgenden Beispiele geben alle3.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 gibtNaN zurück:

js
parseFloat("FF2");

Anekdotisch, da der StringNaN selbst eine ungültige Syntax ist, wie sie vonparseFloat() akzeptiert wird, liefert das Übergeben von"NaN" ebenfallsNaN.

js
parseFloat("NaN"); // NaN

Rü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:

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

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

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

Interaktion 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.

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

Sie sollten den String an dieBigInt()-Funktion übergeben, ohne das nachgestellten-Zeichen.

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

Spezifikationen

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

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp