Метод 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 (ECMA-262) The definition of 'Math.floor' in that specification. |
Living Standard |
Підтримка у браузерах
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.