JavaScript метод Math.floor()

Определение и применение

JavaScript метод floor() объекта Math вычисляет и возвращает наибольшее целое число, которое меньше или равно переданному числу (округляет число вниз).

Проверьте поведение в редактируемом примере.

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.Math.floor
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
floor✓1✓12✓1✓3✓1✓18✓4✓10.1✓1✓1.0✓4.4✓1

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
Math.floor( num );

Спецификация

ECMAScript: Math.floor()

Значения параметров

Math: справочные сведения
Параметр Описание
num Числовое значение.

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

Возвращает число, округлённое к -Infinity: Math.floor(-1.2) равно -2, в отличие от Math.trunc(-1.2), равного -1. Сохраняет NaN, бесконечности и знак нуля. Аргумент преобразуется в Number; BigInt и Symbol вызывают TypeError.

Примеры, попробуйте сами

Как floor() округляет числа вниз

Измените положительные и отрицательные числа или границы диапазона; сравните результаты и повторите запуск.

index.html
HTML
<p>Результат выполнения выводится в консоль.</p>
main.js
JavaScript
console.log(Math.floor(0.99)) // возвращаемое значение 0
console.log(Math.floor(7)) // возвращаемое значение 7
console.log(Math.floor(7.999999)) // возвращаемое значение 7
console.log(Math.floor(-0.01)) // возвращаемое значение -1
console.log(Math.floor(-7)) // возвращаемое значение -7
console.log(Math.floor(-7.999999)) // возвращаемое значение -8

В следующем примере мы рассмотрим как с помощью метода random(), ceil() и floor() объекта Math получить случайное целое число внутри определенного диапазона. Обратите внимание, что возвращаемое значение лежит между округлёнными границами включительно: от Math.ceil(min) до Math.floor(max):

Как получить случайное целое между двумя границами

Измените положительные и отрицательные числа или границы диапазона; сравните результаты и повторите запуск.

index.html
HTML
<p>Результат выполнения выводится в консоль.</p>
main.js
JavaScript
// Обе округлённые границы включены. Пример рассчитан на небольшие конечные диапазоны.
function getRandomIntFromRange(min, max) {
    const lower = Math.ceil(min)
    const upper = Math.floor(max)
    if (
        !Number.isSafeInteger(lower) ||
        !Number.isSafeInteger(upper) ||
        lower > upper ||
        !Number.isSafeInteger(upper - lower + 1)
    ) {
        throw new RangeError('Нужен непустой диапазон безопасных целых')
    }
    return Math.floor(Math.random() * (upper - lower + 1)) + lower
}
for (let i = 0; i < 5; i++) {
    console.log(getRandomIntFromRange(5, 10)) // Целое от 5 до 10; результат меняется при запуске.
}
console.log('Одна точка:', getRandomIntFromRange(7, 7))
try {
    getRandomIntFromRange(5.1, 5.9)
} catch (error) {
    console.log('Пустой диапазон:', error.name)
}