В JavaScript всё является объектами. Любой объект в JavaScript по цепочке прототипов приходит к «Глобальному Объекту» языка. У «Глобального Объекта» JavaScript есть свои собственные свойства-конструкторы. Одним из таких свойств является объект Math
Чтобы округлять дробные числа до целых нужно использовать конструктор Math и его собственные методы округления чисел:
- ceil( ) — округление до наибольшего целого
- floor( ) — округление до наименьшего целого
- round( ) — округление до ближайшего целого
- trunc() — округление до целого в сторону нуля
Напоминаю, что по правилам классической математики 0,5 округляется в большую сторону. Так работает метод round( ).
Примеры
В качестве примеров мы будем передавать в методы дробные числа.
Округление до наибольшего целого
Math.ceil(1.11) 2 Math.ceil(1.5) 2 Math.ceil(1.7) 2
Округление до наименьшего целого
Math.floor(1.11) 1 Math.floor(1.5) 1 Math.floor(1.7) 1
Округление до ближайшего целого (как в математике)
Math.round(1.11) 1 Math.round(1.5) 2 Math.round(1.7) 2
Округление до целого в сторону нуля
Math.trunc(-11.1) -11 Math.trunc(-11.6) -11 Math.trunc(12.1) 12 Math.trunc(12.6) 12
Зачем нужно округлять дробные до целых?
Представьте, что где-то в логике алгоритма нужно найти середину массива? Если длина массива будет чётным числом, то при делении чётного числа на 2 мы всегда получим целое. А вот если длина массива будет нечётным числом, тогда деление на 2 вернёт нам дробное число.
Мы знаем, что в «правильных» массивах не бывает дробных индексов, а значит нам нужно будет явно указать какое-то целое, наиболее подходящее к серединному значению массива. Теперь вы знаете как можно округлить дробное до целого.
Где ещё можно применить округление до целого?
Почитайте решение одной из стандартных задач в языке JavaScript — Как проверить число на дробное?
Информационные ссылки
Стандарт ECMAScript — Раздел «21.3.2.10 Math.ceil ( x )» — https://tc39.es/ecma262/#sec-math.ceil
Стандарт ECMAScript — Раздел «21.3.2.16 Math.floor ( x )» — https://tc39.es/ecma262/#sec-math.floor
Стандарт ECMAScript — Раздел «21.3.2.28 Math.round ( x )» — https://tc39.es/ecma262/#sec-math.round