Как округлить число в javascript
Перейти к содержимому

Как округлить число в javascript

  • автор:

Как округлить число в JS

Округлить число в большую сторону можно при помощи метода Math.ceil . Смотрите пример:

let num = 4.32277; let res = Math.ceil(num); console.log(res);

Результат выполненного кода:

В меньшую сторону

Для округления числа в меньшую сторону можно применить метод Math.floor . Смотрите пример:

let num = 4.62277; let res = Math.floor(num); console.log(res);

Результат выполненного кода:

До целого

Чтобы округлить число до ближайшего целого значения следует воспользоваться методом Math.round . Смотрите пример:

let num = 4.32277; let res = Math.round(num); console.log(res);

Результат выполненного кода:

С помощью метода Math.toFixed

Округлить число до указанного знака в дробной части можно посредством метода Math.toFixed , в параметре которого указывается количество знаков. Если число знаков не указано, то по умолчанию берется 0 , т. е. производится округление до целого числа. Смотрите пример:

let num = 4.62577; let res = num.toFixed(2); console.log(res);

Результат выполненного кода:

С помощью метода toPrecision

В случае, если нужно округлить число до заданной длины можно воспользоваться методом toPrecision . В отличие от Math.round округление можно проводить не только в дробной части. Параметром метода указывается сколько цифр должно остаться в числе. Остальные цифры будут отброшены. Последнее оставшееся число будет округлено по правилам математического округления. Если параметр пуст, то будет возращено исходное число. Если указанное количество знаков не достижимо обрезанием десятичной части — переводит число в экспоненциальную форму. Смотрите пример:

let num = 4.6257714; let res = num.toPrecision(4); console.log(res);

Результат выполненного кода:

Смотрите также

  • метод Math.ceil ,
    который выполняет округление числа в большую сторону
  • метод Math.floor ,
    который выполняет округление числа в меньшую сторону
  • метод Math.round ,
    который также выполняет округление числа до целого
  • методы toFixed и toPrecision ,
    которые также выполняют округление числа

Метод toFixed

Метод toFixed производит округление числа до указанного знака в дробной части. Количество знаков указывается параметром. Если число знаков не указано, то по умолчанию берется 0 знаков, то есть округление до целого числа.

Синтаксис

число.toFixed([количество знаков в дробной части]);

Пример

Пусть дана дробь. Давайте округлим ее до 3 знаков в дробной части:

let num = 1.1111; console.log(num.toFixed(3));

Результат выполнения кода:

Пример

В следующем примере также оставлено только 3 знака в дробной части, однако последняя цифра увеличилась на 1 , так как округление производится по правилам математики:

let num = 1.1119; console.log(num.toFixed(3));

Результат выполнения кода:

Пример

В следующем примере дробь округлится до целого числа, так как параметр метода пуст:

let num = 1.111; console.log(num.toFixed());

Результат выполнения кода:

Пример

В следующем примере параметр метода превышает количество знаков в дробной части исходной дроби, поэтому метод добавит две цифры 0 в конец нашей дроби:

let num = 1.1111; console.log(num.toFixed(6));

Результат выполнения кода:

Смотрите также

  • методы Math.round , Math.ceil , Math.floor ,
    которые также выполняют округление числа
  • метод toPrecision ,
    который выполняет округление числа до определенного количества символов

Math . floor ( ) , Math . round ( ) , Math . ceil ( ) и Math . trunc ( )

Объект Math содержит набор методов, который используется для округления чисел:

  • round ( ) — округление по обычным правилам;
  • floor ( ) — округление вниз;
  • ceil ( ) — округление вверх;
  • trunc ( ) — отбрасывание дробной части, не обращая внимания на знак аргумента.

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Для обычного округления используйте Math . round ( ) :

 console.log(Math.round(15.52))// 16 console.log(Math.round(15.3))// 15 console.log(Math.round(15.52)) // 16 console.log(Math.round(15.3)) // 15      

Округление до ближайшего целого в большую сторону — Math . ceil ( ) :

 console.log(Math.ceil(15.52))// 16 console.log(Math.ceil(15.3))// 16 console.log(Math.ceil(15.52)) // 16 console.log(Math.ceil(15.3)) // 16      

Округление до ближайшего целого в меньшую сторону — Math . floor ( ) :

 console.log(Math.floor(15.52))// 15 console.log(Math.floor(15.3))// 15 console.log(Math.floor(15.52)) // 15 console.log(Math.floor(15.3)) // 15      

�� Используйте осторожно при работе с отрицательными числами:

 console.log(Math.floor(-15.3))// -16 console.log(Math.floor(-15.3)) // -16      

Так происходит потому что -16 меньше, чем -15, а округление происходит в меньшую сторону.

Отбрасывание дробной части — Math . trunc ( )

 console.log(Math.trunc(15.52))// 15 console.log(Math.trunc(-15.3))// -15 console.log(Math.trunc(0.123))// 0 console.log(Math.trunc(-0.123))// -0 console.log(Math.trunc(15.52)) // 15 console.log(Math.trunc(-15.3)) // -15 console.log(Math.trunc(0.123)) // 0 console.log(Math.trunc(-0.123)) // -0      

На практике

Скопировать ссылку «На практике» Скопировано

Николай Лопин советует

Скопировать ссылку «Николай Лопин советует» Скопировано

�� Разные виды округления нужны в разных ситуациях:

  • когда нужно разбить данные на страницы и посчитать общее количество страниц, используйте округление вверх: const total Pages = Math . ceil ( total Items / items Per Page ) .
  • когда нужно выбрать случайный элемент массива, используйте округление вниз: Math . floor ( Math . random ( ) * array . length ) .

Math.ceil()

Метод Math.ceil() — округление вверх. Округляет аргумент до ближайшего большего целого.

Синтаксис

Math.ceil(x)

Параметры

Описание

Поскольку метод ceil() является статическим методом объекта Math , вы всегда должны использовать его как Math.ceil() , а не пытаться вызывать метод на созданном экземпляре объекта Math (поскольку объект Math не является конструктором).

Примеры

Пример: использование метода Math.ceil()

Следующий пример показывает использование метода Math.ceil() .

Math.ceil(.95); // 1 Math.ceil(4); // 4 Math.ceil(7.004); // 8 Math.ceil(-0.95); // -0 Math.ceil(-4); // -4 Math.ceil(-7.004); // -7

Decimal adjustment

Пример: корректировка округления десятичных дробей

// Замыкание (function ()  /** * Корректировка округления десятичных дробей. * * @param type Тип корректировки. * @param value Число. * @param exp Показатель степени (десятичный логарифм основания корректировки). * @returns Скорректированное значение. */ 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.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 // Округление вниз Math.floor10(55.59, -1); // 55.5 Math.floor10(59, 1); // 50 Math.floor10(-55.51, -1); // -55.6 Math.floor10(-51, 1); // -60 // Округление вверх Math.ceil10(55.51, -1); // 55.6 Math.ceil10(51, 1); // 60 Math.ceil10(-55.59, -1); // -55.5 Math.ceil10(-59, 1); // -50 

Спецификации

Specification
ECMAScript Language Specification
# sec-math.ceil

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

  • Math.abs()
  • Math.floor()
  • Math.round()
  • Math.sign() Экспериментальная возможность
  • Math.trunc() Экспериментальная возможность

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *