This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Math.round()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Сводка
МетодMath.round() возвращает число, округлённое к ближайшему целому.
In this article
Синтаксис
Math.round(x)
Параметры
xЧисло.
Описание
Если дробная часть числа больше, либо равна 0,5, аргумент будет округлён до ближайшего большего целого. Если дробная часть числа меньше 0,5, аргумент будет округлён до ближайшего меньшего целого.
Поскольку методround() является статическим методом объектаMath, вы всегда должны использовать его какMath.round(), а не пытаться вызывать метод на созданном экземпляре объектаMath (поскольку объектMath не является конструктором).
Примеры
>Пример: использование методаMath.round()
// Вернёт значение 20x = Math.round(20.49);// Вернёт значение 21x = Math.round(20.5);// Вернёт значение -20x = Math.round(-20.5);// Вернёт значение -21x = Math.round(-20.51);// Вернёт значение 1 (!)// Обратите внимание на ошибку округления из-за неточности арифметики с плавающей запятой// Сравните этот результат с результатом Math.round(1.005, -2) из следующего примераx = Math.round(1.005 * 100) / 100;Пример: корректировка округления десятичных дробей
// Замыкание(function () { /** * Корректировка округления десятичных дробей. * * @param {String} type Тип корректировки. * @param {Number} value Число. * @param {Integer} exp Показатель степени (десятичный логарифм основания корректировки). * @returns {Number} Скорректированное значение. */ function decimalAdjust(type, value, exp) { // Если степень не определена, либо равна нулю... if (typeof exp === "undefined" || +exp === 0) { return Math[type](value); } value = +value; exp = +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.6Math.round10(55.549, -1); // 55.5Math.round10(55, 1); // 60Math.round10(54.9, 1); // 50Math.round10(-55.55, -1); // -55.5Math.round10(-55.551, -1); // -55.6Math.round10(-55, 1); // -50Math.round10(-55.1, 1); // -60Math.round10(1.005, -2); // 1.01 -- сравните этот результат с результатом Math.round(1.005*100)/100 выше// Округление внизMath.floor10(55.59, -1); // 55.5Math.floor10(59, 1); // 50Math.floor10(-55.51, -1); // -55.6Math.floor10(-51, 1); // -60// Округление вверхMath.ceil10(55.51, -1); // 55.6Math.ceil10(51, 1); // 60Math.ceil10(-55.59, -1); // -55.5Math.ceil10(-59, 1); // -50Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-math.round> |