Round: примеры (JAVASCRIPT)
round(number): numberФункция Math.round() в JavaScript выполняет округление числа до ближайшего целого значения. Она используется для математических операций, где требуется точность до целых чисел, например, при расчете количества элементов, округлении результатов вычислений или финансовых операций.
Особенности работы функции
Функция принимает один обязательный аргумент - число, которое необходимо округлить. Возвращаемое значение - целое число, полученное по правилам математического округления: дробные части меньше 0.5 округляются в меньшую сторону, а 0.5 и больше - в большую.
При округлении отрицательных чисел работает то же правило: -1.5 округляется до -1, а -1.6 до -2. Для специальных числовых значений функция ведет себя следующим образом: NaN возвращает NaN, Infinity возвращает Infinity, а -Infinity возвращает -Infinity.
Базовые примеры применения
Math.round(1.4);1
Math.round(1.5);2
Math.round(-1.4);-1
Math.round(-1.5);-1
Math.round(0);0
Другие функции округления в JavaScript
Math.floor() - округление в меньшую сторону до ближайшего целого. Для отрицательных чисел округляет от нуля. Math.ceil() - округление в большую сторону. Для отрицательных чисел округляет к нулю. Math.trunc() - отбрасывает дробную часть без округления. Для финансовых расчетов с контролем направления округления выбирают Math.floor или Math.ceil, тогда как Math.round применяют для стандартного математического округления.
Частые ошибки при использовании
Ожидание точного округления десятичных дробей может привести к неожиданным результатам из-за двоичного представления чисел в JavaScript.
Math.round(1.005 * 100) / 100;1
Неправильный результат возникает из-за того, что 1.005 * 100 равно 100.49999999999999. Для точных операций с деньгами рекомендуется использовать целые числа (центы вместо рублей) или специальные библиотеки.
Изменения в современных версиях
Функция Math.round() остается стабильной и неизменной с первых версий ECMAScript. Ее поведение не менялось в последних спецификациях. Единственное уточнение - добавление в стандарт ES2015 четкого определения округления для значений -0.5 и +0.5 к большему по модулю целому.
Расширенные варианты использования
Округление до определенного количества знаков после запятой с помощью множителя.
function roundTo(num, decimals) {
const factor = 10 ** decimals;
return Math.round(num * factor) / factor;
}
roundTo(1.235, 2);1.24
Округление с использованием битовых операций для положительных чисел.
function roundBitwise(num) {
return (num + 0.5) | 0;
}
roundBitwise(1.7);2
Округление больших чисел с проверкой на переполнение.
Math.round(1.0e+20);100000000000000000000
Аналогичные функции в других языках
PHP: round() поддерживает дополнительные параметры точности и режимы округления. Python: round() использует банковское округление (округление половины к четному). MySQL: ROUND() позволяет указать количество знаков после запятой. C: round() из math.h работает аналогично, но возвращает double.
# Python
round(2.5)2
-- MySQL
SELECT ROUND(1.235, 2);1.24