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 July 2015.
Die toFixed()
-Methode von Number
-Werten gibt einen String zurück, der diese Zahl mithilfe der Festpunktnotation mit der angegebenen Anzahl von Dezimalstellen darstellt.
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
digits
Optional-
Die Anzahl der Ziffern, die nach dem Dezimalpunkt erscheinen sollen; sollte ein Wert zwischen
0
und100
sein, einschließlich. Wenn dieses Argument weggelassen wird, wird es als0
behandelt.
Rückgabewert
Ein String, der die gegebene Zahl unter Verwendung der Festpunktnotation darstellt. Wissenschaftliche Notation wird verwendet, wenn die Größe der Zahl (unabhängig vom Vorzeichen) größer oder gleich 1021 ist (derselbe Rückgabewert wie Number.prototype.toString()
).
Ausnahmen
RangeError
-
Wird ausgelöst, wenn
digits
nicht zwischen0
und100
(einschließlich) liegt. TypeError
-
Wird ausgelöst, wenn diese Methode auf einem Objekt aufgerufen wird, das kein
Number
ist.
Beschreibung
Die toFixed()
-Methode gibt eine String-Darstellung einer Zahl zurück, ohne exponentielle Notation zu verwenden, und mit genau digits
Ziffern nach dem Dezimalpunkt. Die Zahl wird bei Bedarf gerundet und der Bruchteil wird bei Bedarf mit Nullen aufgefüllt, damit er die angegebene Länge hat.
Wenn der absolute Wert der Zahl größer oder gleich 1021 ist, verwendet diese Methode denselben Algorithmus wie Number.prototype.toString()
und gibt einen String in wissenschaftlicher Notation zurück. toFixed()
gibt "Infinity"
, "NaN"
oder "-Infinity"
zurück, wenn der Wert der Zahl nicht endlich ist.
Die Ausgabe von toFixed()
kann bei einigen Werten genauer sein als toString()
, da toString()
nur genügend signifikante Ziffern druckt, um die Zahl von benachbarten Zahlenwerten zu unterscheiden. Zum Beispiel:
(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
Wenn jedoch eine zu hohe digits
-Genauigkeit gewählt wird, können unerwartete Ergebnisse auftreten, da dezimale Bruchzahlen 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 part
numObj.toFixed(1); // '12345.7'; it rounds up
numObj.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 notation
Verwendung von toFixed() mit negativen Zahlen
Da der Mitgliedszugriff eine höhere Priorität hat als das unäre Minus, müssen Sie den Ausdruck der negativen Zahl gruppieren, um einen String 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 |