Метод Math.floor() повертає найбільше ціле число, менше або рівне даному числу.

Синтаксис

Math.floor(x)

Параметри

x
Число.

Результат

Найбільше ціле число, менше або рівне даному числу.

Опис

Оскільки floor() є статичним методом об'єкту Math, він завжди використовується як Math.floor(), а не метод створеного Вами об'єкту Math (Math не є конструктором).

Приклади

Використання Math.floor()

Math.floor( 45.95); //  45
Math.floor( 45.05); //  45
Math.floor(  4   ); //   4
Math.floor(-45.05); // -46 
Math.floor(-45.95); // -46

Десяткове округлення

// Замикання
(function() {
  /**
   * Десяткове округлення числа до необхідної точності.
   *
   * @param {String}  type  Тип округлення.
   * @param {Number}  value Число.
   * @param {Integer} exp   Степінь (десятковий логарифм від основи округлення).
   * @returns {Number} Округлене число.
   */
  function decimalAdjust(type, value, exp) {
    // Якщо exp невизначений або дорівнює нулю...
    if (typeof exp === 'undefined' || +exp === 0) {
      return Math[type](value);
    }
    value = +value;
    exp = +exp;
    // Якщо value не є числом, або ж степінь exp не являється цілим...
    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
      return NaN;
    }
    // Зсув
    value = value.toString().split('e');
    value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
    // Зворотній зсув
    value = value.toString().split('e');
    return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
  }

  // Десяткове округлення
  if (!Math.round10) {
    Math.round10 = function(value, exp) {
      return decimalAdjust('round', value, exp);
    };
  }
  // Десяткове округлення до меншого
  if (!Math.floor10) {
    Math.floor10 = function(value, exp) {
      return decimalAdjust('floor', value, exp);
    };
  }
  // Десяткове округлення до більшого
  if (!Math.ceil10) {
    Math.ceil10 = function(value, exp) {
      return decimalAdjust('ceil', value, exp);
    };
  }
})();

// Округлення
Math.round10(55.55, -1);   // 55.6
Math.round10(55.549, -1);  // 55.5
Math.round10(55, 1);       // 60
Math.round10(54.9, 1);     // 50
Math.round10(-55.55, -1);  // -55.5
Math.round10(-55.551, -1); // -55.6
Math.round10(-55, 1);      // -50
Math.round10(-55.1, 1);    // -60
// Floor
Math.floor10(55.59, -1);   // 55.5
Math.floor10(59, 1);       // 50
Math.floor10(-55.51, -1);  // -55.6
Math.floor10(-51, 1);      // -60
// Ceil
Math.ceil10(55.51, -1);    // 55.6
Math.ceil10(51, 1);        // 60
Math.ceil10(-55.59, -1);   // -55.5
Math.ceil10(-59, 1);       // -50

Специфікації

Специфікація Статус Коментар
ECMAScript 1st Edition (ECMA-262) Standard Initial definition. Implemented in JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.floor' in that specification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.floor' in that specification.
Standard  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.floor' in that specification.
Draft  

Підтримка у браузерах

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

Дивіться також

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita, Ingvarr, artemyavorskyi
Востаннє оновлена: AdriandeCita,