Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Number
  6. toString()

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

View in EnglishAlways switch to English

Number.prototype.toString()

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.

DietoString() Methode vonNumber-Werten gibt eine Zeichenkette zurück, die diesen Zahlenwert darstellt.

Probieren Sie es aus

function hexColor(c) {  if (c < 256) {    return Math.abs(c).toString(16);  }  return 0;}console.log(hexColor(233));// Expected output: "e9"console.log(hexColor("11"));// Expected output: "b"

Syntax

js
toString()toString(radix)

Parameter

radixOptional

Eine ganze Zahl im Bereich von2 bis36, die die Basis angibt, die zum Darstellen des Zahlenwerts verwendet werden soll. Standardmäßig ist dies 10.

Rückgabewert

Eine Zeichenkette, die den angegebenen Zahlenwert darstellt. Wissenschaftliche Notation wird verwendet, wenn der Radix 10 ist und der Betrag der Zahl (unabhängig vom Vorzeichen) größer oder gleich 1021 oder kleiner als 10-6 ist.

Ausnahmen

RangeError

Wird ausgelöst, wennradix kleiner als 2 oder größer als 36 ist.

TypeError

Wird ausgelöst, wenn diese Methode auf einem Objekt aufgerufen wird, das keinNumber ist.

Beschreibung

DasNumber-Objekt überschreibt dietoString-Methode vonObject; es erbt nicht vonObject.prototype.toString(). FürNumber-Werte gibt dietoString-Methode eine Zeichenkettenrepräsentation des Wertes im angegebenen Radix zurück.

Für Radixe über 10 geben die Buchstaben des Alphabets Ziffern größer als 9 an. Zum Beispiel werden für hexadezimale Zahlen (Basis 16)a bisf verwendet.

Wenn der angegebene Zahlenwert negativ ist, bleibt das Vorzeichen erhalten. Dies ist auch der Fall, wenn der Radix 2 ist; die zurückgegebene Zeichenkette ist die positive Binärdarstellung des Zahlenwerts, der von einem--Vorzeichen vorangestellt ist,nicht das Zweierkomplement des Zahlenwerts.

Sowohl0 als auch-0 haben"0" als Zeichenkettenrepräsentation.Infinity gibt"Infinity" zurück undNaN gibt"NaN" zurück.

Wenn die Zahl keine ganze Zahl ist, wird der Dezimalpunkt. verwendet, um die Dezimalstellen zu trennen.Wissenschaftliche Notation wird verwendet, wenn der Radix 10 ist und der Betrag der Zahl (unabhängig vom Vorzeichen) größer oder gleich 1021 oder kleiner als 10-6 ist. In diesem Fall gibt die zurückgegebene Zeichenkette immer das Vorzeichen des Exponenten explizit an.

js
console.log((10 ** 21.5).toString()); // "3.1622776601683794e+21"console.log((10 ** 21.5).toString(8)); // "526665530627250154000000"

Die zugrunde liegende Darstellung für Fließkommazahlen ist die wissenschaftliche Basis-2-Notation (sieheZahlenkodierung). DietoString()-Methode verwendet jedoch nicht direkt diese genaueste Darstellung des Zahlenwerts. Stattdessen verwendet der Algorithmus die geringste Anzahl signifikanter Zahlen, die erforderlich sind, um die Ausgabe von benachbarten Zahlenwerten zu unterscheiden. Zum Beispiel, wenn die Zahl groß ist, gibt es viele gleichwertige Zeichenkettenrepräsentationen derselben Fließkommazahl, undtoString() wählt diejenige mit den meisten 0en rechts (für einen gegebenen Radix).

js
console.log((1000000000000000128).toString()); // "1000000000000000100"console.log(1000000000000000100 === 1000000000000000128); // true

Andererseits ermöglichenNumber.prototype.toFixed() undNumber.prototype.toPrecision(), die Genauigkeit anzugeben und können präziser sein alstoString().

DietoString()-Methode erfordert, dass ihrthis-Wert einNumber-Primitiv oder Wrapper-Objekt ist. Sie löst einenTypeError aus, wenn anderethis-Werte ohne Versuch, sie in Zahlenwerte zu zwingen, auftreten.

DaNumber keine[Symbol.toPrimitive]() Methode hat, ruft JavaScript automatisch dietoString()-Methode auf, wenn einNumber-Objekt in einem Kontext verwendet wird, der eine Zeichenkette erwartet, wie zum Beispiel in einemTemplate Literal. Bei Number-Primitivwerten wird dietoString()-Methode jedoch nicht konsultiert, umin Zeichenketten umgewandelt zu werden — vielmehr werden sie direkt mit demselben Algorithmus wie die anfänglichetoString()-Implementierung konvertiert.

js
Number.prototype.toString = () => "Overridden";console.log(`${1}`); // "1"console.log(`${new Number(1)}`); // "Overridden"

Beispiele

Verwendung von toString()

js
const count = 10;console.log(count.toString()); // "10"console.log((17).toString()); // "17"console.log((17.2).toString()); // "17.2"const x = 6;console.log(x.toString(2)); // "110"console.log((254).toString(16)); // "fe"console.log((-10).toString(2)); // "-1010"console.log((-0xff).toString(2)); // "-11111111"

Konvertieren des Radix von Zahlzeichenketten

Wenn Sie eine Zeichenkette haben, die eine Zahl in einem nicht-dezimalen Radix darstellt, können SieparseInt() undtoString() verwenden, um sie in einen anderen Radix zu konvertieren.

js
const hex = "CAFEBABE";const bin = parseInt(hex, 16).toString(2); // "11001010111111101011101010111110"

Achten Sie auf Präzisionsverlust: Wenn die ursprüngliche Zahlzeichenkette zu groß ist (größer alsNumber.MAX_SAFE_INTEGER, zum Beispiel), sollten Sie stattdessen einenBigInt verwenden. DerBigInt-Konstruktor unterstützt jedoch nur Zeichenketten, die Zahlenliterale darstellen (d.h. Zeichenketten, die mit0b,0o,0x beginnen). Falls Ihr ursprünglicher Radix nicht einer von binär, oktal, dezimal oder hexadezimal ist, müssen Sie möglicherweise Ihren Radix-Konverter von Hand schreiben oder eine Bibliothek verwenden.

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-number.prototype.tostring

Browser-Kompatibilität

Siehe auch

Help improve MDN

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

[8]ページ先頭

©2009-2026 Movatter.jp