So konvertieren Sie eine Zeichenfolge in eine Zahl in JavaScript (mit Beispielen)

Konvertieren von Zeichenfolgen in Zahlen

Die parseInt()Funktion analysiert ein Zeichenfolgenargument und gibt eine Ganzzahl des angegebenen Radix zurück (die Basis in mathematischen Zahlensystemen).

parseInt(string, radix);

Parameter

string

Der zu analysierende Wert. Wenn das stringArgument keine Zeichenfolge ist, wird es in eine Zeichenfolge konvertiert (mithilfe der ToStringabstrakten Operation). Führende Leerzeichen im Zeichenfolgenargument werden ignoriert. '= Radix Eine Ganzzahl zwischen 2 und 36, die den Radix (die Basis in mathematischen Zahlensystemen) der oben genannten Zeichenfolge darstellt. Geben Sie 10das Dezimalzahlensystem an, das üblicherweise von Menschen verwendet wird. Geben Sie diesen Parameter immer an, um Verwirrung beim Leser zu vermeiden und ein vorhersehbares Verhalten zu gewährleisten. Unterschiedliche Implementierungen führen zu unterschiedlichen Ergebnissen, wenn kein Radix angegeben wird. Der Standardwert ist normalerweise 10. Rückgabewert Eine Ganzzahl, die aus der angegebenen Zeichenfolge analysiert wird. Wenn das erste Zeichen nicht in eine Zahl konvertiert werden kann, NaNwird es zurückgegeben.

Beschreibung

Die parseIntFunktion konvertiert ihr erstes Argument in eine Zeichenfolge, analysiert es und gibt eine Ganzzahl oder zurück NaN. Wenn nicht NaN, ist der zurückgegebene Wert die Ganzzahl, die das erste Argument ist, das als Zahl im angegebenen Radix (Basis) verwendet wird. Ein Radix von 10 gibt beispielsweise an, dass von einer Dezimalzahl, 8 Oktal, 16 Hexadezimal usw. konvertiert werden soll. Für Radices oben geben 10die Buchstaben des Alphabets Ziffern größer als 9 an. Beispielsweise wird für Hexadezimalzahlen (Basis 16) Abis Fverwendet.

Wenn Sie parseIntauf ein Zeichen stoßen, das im angegebenen Radix keine Ziffer ist, werden es und alle nachfolgenden Zeichen ignoriert und der bis zu diesem Punkt analysierte ganzzahlige Wert zurückgegeben. parseIntschneidet Zahlen auf ganzzahlige Werte ab. Führende und nachfolgende Leerzeichen sind zulässig.

Da einige Zahlen das eZeichen in ihrer Zeichenfolgendarstellung enthalten (z. B. 6.022e23), führt die Verwendung parseIntzum Abschneiden numerischer Werte zu unerwarteten Ergebnissen, wenn sie für sehr große oder sehr kleine Zahlen verwendet werden. parseIntsollte nicht als Ersatz für verwendet werden Math.floor().

Wenn radix undefinedoder 0 ist (oder fehlt), geht JavaScript von Folgendem aus:

  • Wenn die Eingabe stringmit "0x" oder "0X" beginnt, ist radix 16 (hexadezimal) und der Rest der Zeichenfolge wird analysiert.
  • Wenn die Eingabe stringmit „0“ beginnt, ist der Radix acht (oktal) oder 10 (dezimal). Welcher Radix genau gewählt wird, hängt von der Implementierung ab. ECMAScript 5 gibt an, dass 10 (dezimal) verwendet wird, dies wird jedoch noch nicht von allen Browsern unterstützt. Geben Sie daher bei Verwendung von parseInt immer einen Radix an.
  • Wenn die Eingabe stringmit einem anderen Wert beginnt, beträgt der Radix 10 (dezimal).
  • Wenn das erste Zeichen nicht in eine Zahl konvertiert werden kann, gibt parseInt NaN zurück.

Für arithmetische Zwecke ist der NaN-Wert keine Zahl in einem Radix. Sie können die Funktion isNaN aufrufen, um festzustellen, ob das Ergebnis von parseInt NaN ist. Wenn NaN an arithmetische Operationen weitergegeben wird, sind die Operationsergebnisse ebenfalls NaN.

Verwenden Sie intValue.toString (radix), um die Zahl in ein Zeichenfolgenliteral in einem bestimmten Radix zu konvertieren.

Beispiele

Verwenden parseIntder folgenden Beispiele geben alle zurück 15:

parseInt(' 0xF', 16); parseInt(' F', 16); parseInt('17', 8); parseInt(021, 8); parseInt('015', 10); // parseInt(015, 10); will return 15 parseInt(15.99, 10); parseInt('15,123', 10); parseInt('FXX123', 16); parseInt('1111', 2); parseInt('15 * 3', 10); parseInt('15e2', 10); parseInt('15px', 10); parseInt('12', 13);

Die folgenden Beispiele geben alle zurück NaN:

parseInt('Hello', 8); // Not a number at all parseInt('546', 2); // Digits are not valid for binary representations

Die folgenden Beispiele geben alle zurück -15:

parseInt('-F', 16); parseInt('-0F', 16); parseInt('-0XF', 16); parseInt(-15.1, 10) parseInt(' -17', 8); parseInt(' -15', 10); parseInt('-1111', 2); parseInt('-15e1', 10); parseInt('-12', 13);

Die folgenden Beispiele geben alle zurück 4:

parseInt(4.7, 10); parseInt(4.7 * 1e22, 10); // Very large number becomes 4 parseInt(0.00000000000434, 10); // Very small number becomes 4

Das folgende Beispiel gibt Folgendes zurück 224:

parseInt('0e0', 16);

Mehr Informationen:

parseInt auf MDN

  • parseInt () und parseFloat () versuchen, die Zeichenfolge nach Möglichkeit in eine Zahl umzuwandeln. Zum Beispiel,var x = parseInt("100"); // x = 100
  • Number () konvertiert in eine Zahl, durch die der Wert dargestellt werden kann. Dies schließt Daten in die Anzahl der Millisekunden seit Mitternacht des 1. Januar 1970 UTC ein, boolesche Werte auf 1 oder 0 und Werte, die nicht in eine erkennbare Zahl konvertiert werden können, werden zu NaN. Das steht für Not a Number und ist auch technisch eine Nummer!