--- title: Math.floor() slug: Web/JavaScript/Reference/Global_Objects/Math/floor tags: - JavaScript - Math - Method - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Math/floor ---
Math.floor()
関数は与えられた数値以下の最大の整数を返します。
Math.floor(x)
x
指定された数値以下の最大の整数を表す数値です。
floor()
は Math
オブジェクトの静的なメソッドなので、自ら生成した Math
オブジェクトのメソッドとしてではなく、常に、Math.floor()
として使用するようにしてください (Math
のコンストラクターはありません)。
注: Math.floor(null)
は {{jsxref("NaN")}} ではなく 0 を返します。
Math.floor( 45.95); // 45 Math.floor( 45.05); // 45 Math.floor( 4 ); // 4 Math.floor(-45.05); // -46 Math.floor(-45.95); // -46
/** * 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 const round10 = (value, exp) => decimalAdjust('round', value, exp); // Decimal floor const floor10 = (value, exp) => decimalAdjust('floor', value, exp); // Decimal ceil const ceil10 = (value, exp) => decimalAdjust('ceil', value, exp); // Round round10(55.55, -1); // 55.6 round10(55.549, -1); // 55.5 round10(55, 1); // 60 round10(54.9, 1); // 50 round10(-55.55, -1); // -55.5 round10(-55.551, -1); // -55.6 round10(-55, 1); // -50 round10(-55.1, 1); // -60 // Floor floor10(55.59, -1); // 55.5 floor10(59, 1); // 50 floor10(-55.51, -1); // -55.6 floor10(-51, 1); // -60 // Ceil ceil10(55.51, -1); // 55.6 ceil10(51, 1); // 60 ceil10(-55.59, -1); // -55.5 ceil10(-59, 1); // -50
仕様書 |
---|
{{SpecName('ESDraft', '#sec-math.floor', 'Math.floor')}} |
{{Compat("javascript.builtins.Math.floor")}}