Spec-Zone.ru › JavaScript

Number.prototype.toFixed()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод toFixed() объекта Number возвращает строку, представляющую это число в фиксированной точечной записи с указанным количеством десятичных знаков.

Попробуйте

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"

Синтаксис

toFixed()
toFixed(digits)

Параметры

digits Необязательный
Количество цифр, которые должны отображаться после десятичной точки; должно быть значением от 0 до 100 включительно. Если этот аргумент опущен, он обрабатывается как 0.

Возвращаемое значение

Строка, представляющая данное число в фиксированной точечной записи. Экспоненциальная запись используется, если абсолютное значение числа (без учета знака) больше или равно 1021 (то же возвращаемое значение, что и у Number.prototype.toString()).

Исключения

RangeError
Выбрасывается, если digits не находится в диапазоне от 0 до 100 (включительно).
TypeError
Выбрасывается, если этот метод вызывается для объекта, который не является Number.

Описание

Метод toFixed() возвращает строковое представление числа без использования экспоненциальной записи и ровно с digits цифрами после десятичной точки. Число округляется при необходимости, а дробная часть дополняется нулями при необходимости, чтобы иметь указанную длину.

Если абсолютное значение числа больше или равно 1021, этот метод использует тот же алгоритм, что и Number.prototype.toString(), и возвращает строку в экспоненциальной записи. toFixed() возвращает "Infinity", "NaN" или "-Infinity", если значение числа не является конечным.

Вывод toFixed() может быть более точным, чем у toString() для некоторых значений, поскольку toString() выводит только достаточное количество значащих цифр, чтобы отличить число от соседних числовых значений. Например:

(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'

Однако выбор digits точности, слишком высокой, может привести к неожиданным результатам, поскольку десятичные дробные числа не могут быть точно представлены в числах с плавающей запятой. Например:

(0.3).toFixed(50); // '0.29999999999999998889776975374843459576368331909180'

Примеры

Использование 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

Использование toFixed() с отрицательными числами

Поскольку доступ к членам имеет более высокий приоритет, чем унарный минус, вам необходимо сгруппировать выражение отрицательного числа, чтобы получить строку.

-2.34.toFixed(1); // -2.3; a number
(-2.34).toFixed(1); // '-2.3'

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-number.prototype.tofixed

Совместимость с браузерами

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
toFixed
1
12
1
7
2
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

См. также

  • Number.prototype.toExponential()
  • Number.prototype.toPrecision()
  • Number.prototype.toString()
  • Number.EPSILON

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API