Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Number.prototype.toFixed()
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.
DietoFixed()-Methode vonNumber-Werten gibt eine Zeichenkette zurück, die diese Zahl unter Verwendung derFestkomma-Darstellung mit der angegebenen Anzahl von Dezimalstellen darstellt.
In diesem Artikel
Probieren Sie es aus
function financial(x) { return Number.parseFloat(x).toFixed(2);}console.log(financial(123.456));// Expected output: "123.46"console.log(financial(0.004));// Expected output: "0.00"console.log(financial("1.23e+5"));// Expected output: "123000.00"Syntax
toFixed()toFixed(digits)Parameter
digitsOptionalDie Anzahl der Ziffern, die nach dem Dezimalpunkt erscheinen sollen; sollte ein Wert zwischen
0und100sein, einschließlich. Wenn dieses Argument weggelassen wird, wird es als0behandelt.
Rückgabewert
Eine Zeichenkette, die die gegebene Zahl unter Verwendung der Festkomma-Darstellung darstellt. Wissenschaftliche Notation wird verwendet, wenn der Betrag der Zahl (ohne Vorzeichen) größer oder gleich 1021 ist (gleicher Rückgabewert wieNumber.prototype.toString()).
Ausnahmen
RangeErrorWird ausgelöst, wenn
digitsnicht zwischen0und100(einschließlich) liegt.TypeErrorWird ausgelöst, wenn diese Methode auf einem Objekt aufgerufen wird, das kein
Numberist.
Beschreibung
DietoFixed()-Methode gibt eine Zeichenketten-Darstellung einer Zahl zurück, die keineexponentielle Notation verwendet und genaudigits Ziffern nach dem Dezimalpunkt hat. Die Zahl wird bei Bedarf gerundet, und der Bruchteil ist bei Bedarf mit Nullen aufgefüllt, sodass er die angegebene Länge hat.
Wenn der absolute Wert der Zahl größer oder gleich 1021 ist, verwendet diese Methode den gleichen Algorithmus wieNumber.prototype.toString() und gibt eine Zeichenkette in Exponentialdarstellung zurück.toFixed() gibt"Infinity","NaN" oder"-Infinity" zurück, wenn der Wert der Zahl nicht endlich ist.
Die Ausgabe vontoFixed() kann für einige Werte präziser sein alstoString(), datoString() nur genügend signifikante Ziffern ausdruckt, um die Zahl von angrenzenden Zahlenwerten zu unterscheiden. Zum Beispiel:
(1000000000000000128).toString(); // '1000000000000000100'(1000000000000000128).toFixed(0); // '1000000000000000128'Jedoch kann die Wahl einer zu hohendigits-Präzision unerwartete Ergebnisse liefern, da Dezimalbrüche im Gleitkomma nicht genau dargestellt werden können. Zum Beispiel:
(0.3).toFixed(50); // '0.29999999999999998889776975374843459576368331909180'Beispiele
>Verwendung von toFixed()
const numObj = 12345.6789;numObj.toFixed(); // '12346'; rounding, no fractional partnumObj.toFixed(1); // '12345.7'; it rounds upnumObj.toFixed(6); // '12345.678900'; additional zeros(1.23e20).toFixed(2); // '123000000000000000000.00'(1.23e-10).toFixed(2); // '0.00'(2.34).toFixed(1); // '2.3'(2.35).toFixed(1); // '2.4'; it rounds up(2.55).toFixed(1); // '2.5'// it rounds down as it can't be represented exactly by a float and the// closest representable float is lower(2.449999999999999999).toFixed(1); // '2.5'// it rounds up as it's less than Number.EPSILON away from 2.45.// This literal actually encodes the same number value as 2.45(6.02 * 10 ** 23).toFixed(50); // '6.019999999999999e+23'; large numbers still use exponential notationVerwendung von toFixed() mit negativen Zahlen
Da der Memberzugriff eine höherePriorität als das unäre Minus hat, müssen Sie den Ausdruck für die negative Zahl gruppieren, um eine Zeichenkette zu erhalten.
-2.34.toFixed(1); // -2.3; a number(-2.34).toFixed(1); // '-2.3'Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-number.prototype.tofixed> |