Округление числа вниз в JavaScript: метод Math.floor()

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для округления числа в меньшую сторону в JavaScript нужно применить функцию Math.floor():

JS
Скопировать код
let num = Math.floor(5.95); // результатом будет 5
Кинга Идем в IT: пошаговый план для смены профессии

Обзор методов округления чисел

В JavaScript для округления числа до ближайшего меньшего целого значения идеально подходит метод Math.floor(). Но как насчет отрицательных чисел? Если Math.floor() направляет нас к отрицательной бесконечности, то Math.trunc() усекает дробную часть, не учитывая знак числа.

JS
Скопировать код
let numNegative = Math.trunc(-5.95); // возвращает -5, тогда как Math.floor() вернет -6

Чтобы сэкономить время выполнения, можно использовать побитовый оператор ИЛИ |, но его можно применить только к неотрицательным числам.

JS
Скопировать код
let bitwiseRoundDown = 5.95 | 0; // вернет 5, но этот подход не пригодится во всех случаях

Контроль точности: округление с заданным количеством десятичных знаков

Для округления числа с определенным количеством знаков после запятой можно использовать сочетание Math.floor() и Math.pow():

JS
Скопировать код
function roundDown(value, decimals) {
  return Math.floor(value * Math.pow(10, decimals)) / Math.pow(10, decimals);
}

let preciseRoundDown = roundDown(5.987, 2); // получим 5.98

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

Крайние случаи и совместимость

В своей работе метод Math.floor() хорошо зарекомендовал себя на различных платформах, однако стоит помнить о его особенностях:

  • Отрицательный ноль: Math.floor(-0) возвращает -0, что может повлиять на строковое представление числа и расчеты.
  • Бесконечности: JavaScript корректно обрабатывает Infinity и -Infinity, рассматривая их как наибольшее и наименьшее числа.
JS
Скопировать код
console.log(Math.floor(Infinity));  // возвращает Infinity
console.log(Math.floor(-Infinity)); // возвращает -Infinity

Если вы работаете с JavaScript, всегда имейте под рукой актуальную официальную документацию.

Визуализация

Представьте действие метода Math.floor() как понижение числа до ближайшего меньшего целого без лишних действий:

plaintext
Скопировать код
        ____
3.7 ⮕  |    |  ➡️ 3
       |📉  |   
       |____|

        ____
5.9 ⮕  |    |  ➡️ 5
       |📉  |  
       |____| 

        ____
2.3 ⮕  |    |  ➡️ 2
       |📉  |  
       |____|

Как видно, метод Math.floor() сводится к простому спуску до ближайшего нижележащего целого числа. Это просто и понятно.

Работа с числами с плавающей точкой

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

Игнорирование дробной части

Если вам нужно округлить число в меньшую сторону, игнорируя дробные части:

JS
Скопировать код
let ignoreFraction = 5.95 – (5.95 % 1); // вернет 5, усекая дробную часть
Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Помощь от специализированных библиотек

Для задач, требующих высокой точности, используйте специализированные библиотеки, такие как BigNumber.js или decimal.js, чтобы обойти ограничения стандартного числового типа.

Совместимость с Math.ceil()

Если вы столкнулись с проблемами при использовании Math.floor() на устаревших версиях браузеров, примените Math.ceil() в комбинации с отрицательным значением:

JS
Скопировать код
let badBrowserRoundDown = Math.ceil(-5.95) * -1; // вернет -5, обходя ограничения при округлении вверх

Полезные материалы

  1. Math.floor() – JavaScript | MDN — официальная документация MDN о методе Math.floor().
  2. Math.trunc() – JavaScript | MDN — подробности о методе Math.trunc().
  3. Методы чисел в JavaScript — обучающий материал W3Schools о методах чисел в JavaScript.
  4. Числа – JavaScript.info — описание методов toFixed и toPrecision.
  5. Функция JavaScript Math.round( ) – GeeksforGeeks — обзор методов округления в JavaScript от GeeksforGeeks.
  6. Reddit – Погрузитесь в обсуждения — дискуссия на Reddit о разных подходах к округлению чисел в JavaScript.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой метод в JavaScript используется для округления числа вниз?
1 / 5