toFixed() в JavaScript

toFixed() нужен, когда число нужно показать с определенным количеством знаков после точки.

Чаще всего метод используют для цен, процентов, рейтингов и других значений, которые выводятся пользователю.

let price = 19.987;

console.log(price.toFixed(2)); // "19.99"

Метод округлил число до двух знаков после точки и вернул строку.

Синтаксис

number.toFixed(digits);

digits - количество знаков после точки, которое нужно оставить.

let value = 12.3456;

console.log(value.toFixed(0)); // "12"
console.log(value.toFixed(1)); // "12.3"
console.log(value.toFixed(2)); // "12.35"
console.log(value.toFixed(3)); // "12.346"

Если аргумент не передать, JavaScript оставит 0 знаков после точки.

let value = 7.8;

console.log(value.toFixed()); // "8"

Метод добавляет нули

toFixed() не только округляет число, но и дописывает нули, если знаков после точки не хватает.

let price = 10;

console.log(price.toFixed(2)); // "10.00"

Это удобно, когда нужно вывести значение в одном формате.

let total = 2499;

console.log(`${total.toFixed(2)} ₽`); // "2499.00 ₽"

toFixed() возвращает строку

Это важный момент: результат toFixed() - не число, а строка.

let value = 5.678;
let result = value.toFixed(2);

console.log(result); // "5.68"
console.log(typeof result); // "string"

Для вывода на страницу это нормально. Но если с результатом нужно дальше считать, его лучше снова превратить в число.

let value = 5.678;
let result = Number(value.toFixed(2));

console.log(result + 1); // 6.68

Когда использовать toFixed()

toFixed() хорошо подходит, когда нужно именно отформатировать число для вывода.

let discount = 17.456;

console.log(`Скидка: ${discount.toFixed(1)}%`); // "Скидка: 17.5%"

Если задача только в математическом округлении, чаще используют методы Math.round(), Math.floor() или Math.ceil(). А toFixed() удобен именно для красивого отображения числа.

Итого

toFixed() оставляет у числа нужное количество знаков после точки.

Метод округляет значение, при необходимости добавляет нули и всегда возвращает строку. Поэтому для вывода он подходит отлично, а для дальнейших вычислений результат нужно преобразовать обратно в число.