Baseline Widely available
Die toString()
Methode von Number
-Werten gibt eine Zeichenkette zurück, 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"
Syntax
toString()
toString(radix)
Parameter
radix
Optional
Eine ganze Zahl im Bereich von 2
bis 36
, die die Basis angibt, die zum Darstellen des Zahlenwerts verwendet werden soll. StandardmäÃig ist dies 10.
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.
AusnahmenRangeError
Wird ausgelöst, wenn radix
kleiner als 2 oder gröÃer als 36 ist.
TypeError
Wird ausgelöst, 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()
. Für Number
-Werte gibt die toString
-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
bis f
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.
Sowohl 0
als auch -0
haben "0"
als Zeichenkettenrepräsentation. Infinity
gibt "Infinity"
zurück und NaN
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.
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 (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 Zeichenkettenrepräsentationen derselben FlieÃkommazahl, und toString()
wählt diejenige mit den meisten 0en rechts (für einen gegebenen Radix).
console.log((1000000000000000128).toString()); // "1000000000000000100"
console.log(1000000000000000100 === 1000000000000000128); // true
Andererseits ermöglichen Number.prototype.toFixed()
und Number.prototype.toPrecision()
, die Genauigkeit anzugeben und können präziser sein als toString()
.
Die toString()
-Methode erfordert, dass ihr this
-Wert ein Number
-Primitiv oder Wrapper-Objekt ist. Sie löst 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 anfängliche toString()
-Implementierung konvertiert.
Number.prototype.toString = () => "Overridden";
console.log(`${1}`); // "1"
console.log(`${new Number(1)}`); // "Overridden"
Beispiele Verwendung von toString()
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 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 Präzisionsverlust: Wenn die ursprüngliche Zahlzeichenkette zu groà ist (gröÃer als Number.MAX_SAFE_INTEGER
, zum Beispiel), sollten Sie stattdessen einen BigInt
verwenden. Der BigInt
-Konstruktor unterstützt jedoch nur Zeichenketten, die Zahlenliterale darstellen (d.h. Zeichenketten, die mit 0b
, 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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4