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() оставляет у числа нужное количество знаков после точки.
Метод округляет значение, при необходимости добавляет нули и всегда возвращает строку. Поэтому для вывода он подходит отлично, а для дальнейших вычислений результат нужно преобразовать обратно в число.