Math.trunc(): удаление дробной части числа
Math.trunc убирает дробную часть и приближает результат к нулю. Для отрицательных значений это отличается от округления вниз через Math.floor.
Назначение
Math.trunc убирает дробную часть и приближает результат к нулю. Для отрицательных значений это отличается от округления вниз через Math.floor.
Как это работает
У положительного 3.9 результат равен 3, у отрицательного -3.9 — -3. Метод приводит аргумент к числу, поэтому числовая строка допустима, а нечисловой текст даёт NaN.
Пример
console.assert(Math.trunc(3.9) === 3);
console.assert(Math.trunc(-3.9) === -3);
console.assert(Math.floor(-3.9) === -4);
console.assert(Math.trunc("7.8") === 7);
console.assert(Number.isNaN(Math.trunc("нет")));
console.assert(Object.is(Math.trunc(-0.4), -0));
console.log("Усечение направлено к нулю");
Что должно получиться
Проверки показывают направление усечения и сохранение отрицательного нуля для малого отрицательного числа. Это математическая операция, а не форматирование текста для интерфейса.
Граница применения и частая ошибка
Не заменяйте Math.trunc побитовыми трюками вроде value|0: они переводят число в 32-битное представление и дают другие результаты на больших величинах. Для округления денежных расчётов нужен явно определённый алгоритм.
Самостоятельная проверка
Составьте таблицу trunc, floor, ceil и round для 2.7, -2.7, 0.2 и -0.2. Объясните различия словами и заранее выберите операцию для своей задачи, а не по совпадению одного примера.
Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.