Метод floorMod
Метод floorMod класса Math возвращает
остаток от деления двух чисел, используя математическое
понятие «пола» (floor). В отличие от стандартного оператора
%, который может возвращать отрицательный результат,
метод floorMod всегда возвращает значение, знак
которого совпадает со знаком делителя. В первый параметр
мы передаем делимое, во второй - делитель. Метод доступен
в перегрузках для типов int и long.
Синтаксис
Math.floorMod(dividend, divisor)
Пример
Давайте сравним результат работы оператора %
и метода floorMod для отрицательного делимого:
public class Main
{
public static void main(String[] args)
{
int a = -10;
int b = 3;
System.out.println(a % b);
System.out.println(Math.floorMod(a, b));
}
}
Результат выполнения кода:
-1
2
Пример
Давайте проверим работу метода с положительным делимым и отрицательным делителем:
public class Main
{
public static void main(String[] args)
{
int a = 10;
int b = -3;
System.out.println(a % b);
System.out.println(Math.floorMod(a, b));
}
}
Результат выполнения кода:
1
-2
Пример
Давайте применим метод floorMod для вычисления
индекса в циклическом массиве, где отрицательный индекс
должен корректно преобразовываться:
public class Main
{
public static void main(String[] args)
{
int[] arr = {1, 2, 3, 4, 5};
int index = -7;
int size = arr.length;
int res = arr[Math.floorMod(index, size)];
System.out.println(res);
}
}
Результат выполнения кода:
3
Смотрите также
-
метод
floorDiv,
который выполняет деление с округлением вниз -
метод
floor,
который округляет число вниз -
метод
ceilMod,
который возвращает остаток с округлением вверх -
метод
IEEEremainder,
который вычисляет остаток по стандарту IEEE 754