toFixed()

Метод toFixed() в JavaScript используется для форматирования числа до определенного количества знаков после запятой. Он преобразует число в строку, округляя его при необходимости, чтобы получить точно заданное количество десятичных знаков. Это удобно для представления фиксированного количества цифр в финансовых и других вычислениях, где важна точность.

  
  let number = 2.34567;
  console.log(number.toFixed(2)); // 2.35
  

Нюансы работы метода toFixed()

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

  
  let number = 1.678;
  console.log(number.toFixed(2)); // 1.68
  

Здесь число 1.678 округляется до двух десятичных знаков. Третья цифра после запятой (8) достаточно велика, чтобы увеличить второй десятичный знак на единицу, в результате получаем 1.68.

Округление в меньшую сторону

  
  let number = 1.672;
  console.log(number.toFixed(2)); 1.67
  

В этом случае, 1.672 округляется до 1.67. Третья цифра после запятой (2) не достаточно велика, чтобы вызвать изменение второго десятичного знака.

Особые случаи округления

Округление иногда может выглядеть неожиданно из-за особенностей представления чисел с плавающей точкой в компьютерных системах. Давайте рассмотрим поведение метода toFixed() на примере числа 0.345.

  
  let number = 0.345;
  console.log(number.toFixed(2)); // 0.34
  console.log(number.toFixed(20)); // 0.34499999999999997335
  

Внутреннее представление числа 0.345 в JavaScript немного меньше чем может показаться изначально: 0.34499999999999997. Проверить это мы можем, попросив toFixed(), показать нам 20 значений после запятой. Таким образом округляя число 0.345 до двух знаков мы получаем 0.34.

Использование toFixed без указания параметра

Если не указать параметр в toFixed(), по умолчанию число будет округлено до ближайшего целого, а результатом также будет строка.

  
  let number = 2.34567;
  console.log(number.toFixed()); 2
  

Возвращаемое значение — строка

Важно помнить, что toFixed() возвращает строку, что может влиять на дальнейшие математические операции.

  
  let number = 2.34567;
  let formattedNumber = number.toFixed(2);
  console.log(typeof formattedNumber); // Вернёт string
  console.log(formattedNumber + 1); // Вернёт 2.351 вследствие конкатенации строк
  

Округление целых чисел

Округление целого числа не изменяет его значение, но преобразует в строку.

  
  let number = 10;
  console.log(number.toFixed(2)); // 10.00    
  

Округление чисел с недостаточным количеством знаков после запятой

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

  
    let number = 1.2;
    console.log(number.toFixed(3)); // 1.200      
  

Округление очень больших чисел

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

  
  let number = 2e+20;
  console.log(number.toFixed(2)); // 200000000000000000000.00
  

Итого

Метод toFixed() является мощным инструментом для работы с числовыми данными в JavaScript, особенно когда необходима точность до определенного количества знаков после запятой. Однако важно помнить, что результатом его работы является строка, что может повлиять на последующие вычисления. В некоторых случаях более удобными могут оказаться методы, такие как Math.round(), если требуется получить число, а не строку.