| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Number/toString | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Juli 2015 browserbergreifend verfgbar.
Die toString() Methode von Number-Werten gibt eine Zeichenkette zurck, die diesen Zahlenwert darstellt.
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"
toString()
toString(radix)
radix OptionalEine ganze Zahl im Bereich von 2 bis 36, die die Basis angibt, die zum Darstellen des Zahlenwerts verwendet werden soll. Standardmig ist dies 10.
Eine Zeichenkette, die den angegebenen Zahlenwert darstellt. Wissenschaftliche Notation wird verwendet, wenn der Radix 10 ist und der Betrag der Zahl (unabhngig vom Vorzeichen) grer oder gleich 1021 oder kleiner als 10-6 ist.
RangeErrorWird ausgelst, wenn radix kleiner als 2 oder grer als 36 ist.
TypeErrorWird ausgelst, wenn diese Methode auf einem Objekt aufgerufen wird, das kein Number ist.
Das Number-Objekt berschreibt die toString-Methode von Object; es erbt nicht von
Object.prototype.toString(). Fr Number-Werte gibt die toString-Methode eine Zeichenkettenreprsentation des Wertes im angegebenen Radix zurck.
Fr Radixe ber 10 geben die Buchstaben des Alphabets Ziffern grer als 9 an. Zum Beispiel werden fr hexadezimale Zahlen (Basis 16) a bis f verwendet.
Wenn der angegebene Zahlenwert negativ ist, bleibt das Vorzeichen erhalten. Dies ist auch der Fall, wenn der Radix 2 ist; die zurckgegebene Zeichenkette ist die positive Binrdarstellung des Zahlenwerts, der von einem --Vorzeichen vorangestellt ist, nicht das Zweierkomplement des Zahlenwerts.
Sowohl 0 als auch -0 haben "0" als Zeichenkettenreprsentation. Infinity gibt "Infinity" zurck und NaN gibt "NaN" zurck.
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 (unabhngig vom Vorzeichen) grer oder gleich 1021 oder kleiner als 10-6 ist. In diesem Fall gibt die zurckgegebene Zeichenkette immer das Vorzeichen des Exponenten explizit an.
console.log((10 ** 21.5).toString()); // "3.1622776601683794e+21"
console.log((10 ** 21.5).toString(8)); // "526665530627250154000000"
Die zugrunde liegende Darstellung fr Fliekommazahlen ist die wissenschaftliche Basis-2-Notation (siehe Zahlenkodierung). Die toString()-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 Zeichenkettenreprsentationen derselben Fliekommazahl, und toString() whlt diejenige mit den meisten 0en rechts (fr einen gegebenen Radix).
console.log((1000000000000000128).toString()); // "1000000000000000100"
console.log(1000000000000000100 === 1000000000000000128); // true
Andererseits ermglichen Number.prototype.toFixed() und Number.prototype.toPrecision(), die Genauigkeit anzugeben und knnen prziser sein als toString().
Die toString()-Methode erfordert, dass ihr this-Wert ein Number-Primitiv oder Wrapper-Objekt ist. Sie lst einen TypeError aus, wenn andere this-Werte ohne Versuch, sie in Zahlenwerte zu zwingen, auftreten.
Da Number keine [Symbol.toPrimitive]() Methode hat, ruft JavaScript automatisch die toString()-Methode auf, wenn ein Number-Objekt in einem Kontext verwendet wird, der eine Zeichenkette erwartet, wie zum Beispiel in einem Template Literal. Bei Number-Primitivwerten wird die toString()-Methode jedoch nicht konsultiert, um in Zeichenketten umgewandelt zu werden vielmehr werden sie direkt mit demselben Algorithmus wie die anfngliche toString()-Implementierung konvertiert.
Number.prototype.toString = () => "Overridden";
console.log(`${1}`); // "1"
console.log(`${new Number(1)}`); // "Overridden"
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"
Wenn Sie eine Zeichenkette haben, die eine Zahl in einem nicht-dezimalen Radix darstellt, knnen Sie parseInt() und toString() verwenden, um sie in einen anderen Radix zu konvertieren.
const hex = "CAFEBABE";
const bin = parseInt(hex, 16).toString(2); // "11001010111111101011101010111110"
Achten Sie auf Przisionsverlust: Wenn die ursprngliche Zahlzeichenkette zu gro ist (grer als Number.MAX_SAFE_INTEGER, zum Beispiel), sollten Sie stattdessen einen BigInt verwenden. Der BigInt-Konstruktor untersttzt jedoch nur Zeichenketten, die Zahlenliterale darstellen (d.h. Zeichenketten, die mit 0b, 0o, 0x beginnen). Falls Ihr ursprnglicher Radix nicht einer von binr, oktal, dezimal oder hexadezimal ist, mssen Sie mglicherweise Ihren Radix-Konverter von Hand schreiben oder eine Bibliothek verwenden.
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-number.prototype.tostring |
NumberObject/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |