Метод ceilDiv
Метод ceilDiv класса Math выполняет
целочисленное деление с округлением результата
вверх (в сторону положительной бесконечности).
В первый параметр мы передаем делимое, во второй -
делитель. Метод возвращает наименьшее целое число,
которое больше или равно точному результату деления.
Этот метод удобен, когда нужно вычислить количество
групп, страниц или блоков, округляя всегда в большую
сторону.
Метод имеет перегрузки для типов int и
long. Если делитель равен нулю, выбрасывается
исключение ArithmeticException.
Синтаксис
Math.ceilDiv(dividend, divisor)
Пример
Давайте разделим число 10 на 3.
Обычное деление дало бы 3, но метод
ceilDiv округляет результат вверх:
public class Main
{
public static void main(String[] args)
{
int res = Math.ceilDiv(10, 3);
System.out.println(res);
}
}
Результат выполнения кода:
4
Пример
Давайте сравним метод ceilDiv с обычным
делением для нескольких пар чисел:
public class Main
{
public static void main(String[] args)
{
System.out.println(Math.ceilDiv(10, 3));
System.out.println(Math.ceilDiv(9, 3));
System.out.println(Math.ceilDiv(7, 2));
System.out.println(Math.ceilDiv(1, 5));
}
}
Результат выполнения кода:
4
3
4
1
Пример
Давайте вычислим количество страниц, необходимых
для размещения 23 элементов по 5
элементов на странице:
public class Main
{
public static void main(String[] args)
{
int items = 23;
int perPage = 5;
int pages = Math.ceilDiv(items, perPage);
System.out.println(pages);
}
}
Результат выполнения кода:
5
Пример
Метод также работает с отрицательными числами, округляя результат в сторону положительной бесконечности:
public class Main
{
public static void main(String[] args)
{
System.out.println(Math.ceilDiv(-10, 3));
System.out.println(Math.ceilDiv(10, -3));
System.out.println(Math.ceilDiv(-10, -3));
}
}
Результат выполнения кода:
-3
-3
4
Пример
Давайте рассмотрим перегрузку метода для типа
long:
public class Main
{
public static void main(String[] args)
{
long res = Math.ceilDiv(10000000000L, 3L);
System.out.println(res);
}
}
Результат выполнения кода:
3333333334