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

Округляем разными способами.

Время чтения: меньше 5 мин

Кратко

Скопировано

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

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

Как пишется

Скопировано

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

        
          
          console.log(Math.round(15.52))// 16console.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))// 16console.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))// 15console.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))// 15console.log(Math.trunc(-15.3))// -15console.log(Math.trunc(0.123))// 0console.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 totalPages = Math.ceil(totalItems / itemsPerPage).
  • когда нужно выбрать случайный элемент массива, используйте округление вниз: Math.floor(Math.random() * array.length).