The java.lang.Math.floorMod() is a built-in math function in java which returns the floor modulus of the integer arguments passed to it. Therefore, floor modulus is (a – (floorDiv(a, b) * b)), has the same sign as the divisor b, and is in the range of -abs(b) < t < +abs(b).
Relationship between floorDiv and floorMod is:
floorDiv(a, b) * b + floorMod(a, b) == a
The difference in values between floorMod and the % operator is due to the difference between floorDiv that returns the integer less than or equal to the quotient and the / operator that returns the integer closest to zero.
Syntax :
public static int floorMod(data_type a, data_type b)
Parameters: The function accepts two parameters.
- a: This refers to the dividend value.
- b: This refers to the divisor value.
The parameters can be of data-type int or long.
Exception: It throws an ArithmeticException if the divisor is zero.
Return Value: This method returns the floor modulus x – (floorDiv(x, y) * y).
Below programs are used to illustrate the working of java.lang.Math.floorMod() method.
Program 1:
// Java program to demonstrate working // of java.lang.Math.floorMod() method import java.lang.Math; class Gfg1 { public static void main(String args[]) { int a = 25 , b = 5 ; System.out.println(Math.floorMod(a, b)); // Divisor and dividend is having same sign int c = 123 , d = 50 ; System.out.println(Math.floorMod(c, d)); // Divisor is having negative sign int e = 123 , f = - 50 ; System.out.println(Math.floorMod(e, f)); // Dividend is having negative sign int g = - 123 , h = 50 ; System.out.println(Math.floorMod(g, h)); } } |
0 23 -27 27
Program 2:
// Java program to demonstrate working // of java.lang.Math.floorMod() method import java.lang.Math; class Gfg2 { public static void main(String args[]) { int x = 200 ; int y = 0 ; System.out.println(Math.floorMod(x, y)); } } |
Output:
Runtime Error : Exception in thread "main" java.lang.ArithmeticException: / by zero at java.lang.Math.floorDiv(Math.java:1052) at java.lang.Math.floorMod(Math.java:1139) at Gfg2.main(File.java:13)
Reference: https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#floorMod-int-int-