Содержание
Округление чисел в JavaScript часто требуется при проведении математических операций: в калькуляторах, при просчете высоты/ширины блока и т.д.
В этом посте мы рассмотрим как округлить число в JS до целого и отбросить дробную часть, а также до 2 знаков после запятой.
Math.ceil() — округление в большую сторону
С помощью метода ceil()
объекта Math
мы можем округлить число в большую сторону. Останется только целая часть, без десятичной. Нам нужно передать только один параметр — число, которое мы хотим округлить:
console.log(Math.ceil(74.5)); // 75 console.log(Math.ceil(4.1)); // 5 console.log(Math.ceil(55.321)); // 56 console.log(Math.ceil(-55.321)); // -55 console.log(Math.ceil(-0.3)); // -0 console.log(Math.ceil(-7.3)); // -7
Обратите внимание на округление отрицательных чисел — -7.3
округляется до -7
, т.к. -7
больше чем -7.3
.
Math.floor() — округление в меньшую сторону
Для округления в меньшую сторону есть отдельный метод floor(). Он также округляет до целого числа. Рассмотрим на тех же примерах:
console.log(Math.floor(74.5)); // 74 console.log(Math.floor(4.1)); // 4 console.log(Math.floor(55.321)); // 55 console.log(Math.floor(-55.321)); // -56 console.log(Math.floor(-0.3)); // -1 console.log(Math.floor(-7.3)); // -8
Math.round() — округление до целого числа
Данный метод округляет число до ближайшего целого (отбрасывает дробную часть) по правилам математики. То есть, если десятичная часть числа >= .5
(больше или равно), тогда округление срабатывает в большую сторону. Если меньше — тогда в меньшую сторону
Примеры:
console.log(Math.round(64.5)); // 65 console.log(Math.round(64.4)); // 64 console.log(Math.round(14.21)); // 14 console.log(Math.round(34.49)); // 34 console.log(Math.round(34.51)); // 35 console.log(Math.round(-3.6)); // -4 console.log(Math.round(-3.4)); // -3
toFixed() JS — округление до заданного количества чисел после запятой
Этот метод уже работает отдельно от объекта Math и он позволяет нам указать сколько чисел нужно оставить после запятой (до десятых, сотых, тысячных и т.д.). По умолчанию, если не передать никакие параметры, округление будет до целого числа. Округление также будет происходить по математическим правилам.
Давайте рассмотрим примеры с округлением до 2 знаков после запятой, как наиболее часто используемый в финансовых расчетах:
const num1 = 64; const num2 = 64.4568; const num3 = 13.894; const num4 = -13.41568; console.log(num1.toFixed(2)); // 64.00 console.log(num2.toFixed(2)); // 64.46 console.log(num3.toFixed(2)); // 13.89 console.log(num4.toFixed(2)); // -13.42 const num5 = 55.5; const num6 = 55.4; console.log(num5.toFixed()); // 56 console.log(num6.toFixed()); // 55
Обратите внимание на такой момент. Если вы захотите присвоить значение после выполнения метода toFixed()
другой переменной, это будет строка, а не число:
const num1 = 64.4568; const num2 = num1.toFixed(2); console.log(typeof num2, num2); // string "64.46"
Для того, чтобы получить число можно использовать такие варианты:
const num1 = 64.4568; const num2 = +num1.toFixed(2); console.log(typeof num2, num2); // number 64.46 const num3 = parseFloat(num1.toFixed(2)); console.log(typeof num3, num3); // number 64.46 const num4 = Number(num1.toFixed(2)); console.log(typeof num4, num4); // number 64.46