mozilla
Your Search Results

    Math.floor()

    Summary

    The Math.floor() function returns the largest integer less than or equal to a given number.

    Syntax

    Math.floor(x)

    Parameters

    x
    A number.

    Description

    Because floor() is a static method of Math, you always use it as Math.floor(), rather than as a method of a Math object you created (Math is not a constructor).

    Examples

    Example: Using Math.floor()

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

    Example: Decimal adjustment

    // Closure
    (function() {
      /**
       * Decimal adjustment of a number.
       *
       * @param {String}  type  The type of adjustment.
       * @param {Number}  value The number.
       * @param {Integer} exp   The exponent (the 10 logarithm of the adjustment base).
       * @returns {Number} The adjusted value.
       */
      function decimalAdjust(type, value, exp) {
        // If the exp is undefined or zero...
        if (typeof exp === 'undefined' || +exp === 0) {
          return Math[type](value);
        }
        value = +value;
        exp = +exp;
        // If the value is not a number or the exp is not an integer...
        if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
          return NaN;
        }
        // Shift
        value = value.toString().split('e');
        value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
        // Shift back
        value = value.toString().split('e');
        return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
      }
    
      // Decimal round
      if (!Math.round10) {
        Math.round10 = function(value, exp) {
          return decimalAdjust('round', value, exp);
        };
      }
      // Decimal floor
      if (!Math.floor10) {
        Math.floor10 = function(value, exp) {
          return decimalAdjust('floor', value, exp);
        };
      }
      // Decimal ceil
      if (!Math.ceil10) {
        Math.ceil10 = function(value, exp) {
          return decimalAdjust('ceil', value, exp);
        };
      }
    })();
    
    // Round
    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
    

    Specifications

    Specification Status Comment
    ECMAScript 1st Edition. 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  

    Browser compatibility

    Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
    Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

    See also

    Document Tags and Contributors

    Last updated by: Mingun,