Вебсправочник
Справочник JavaScript

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 не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.