Java Math IEEEremainder()

The Java Math IEEEremainder() method performs the division on specified arguments and returns the remainder according to IEEE 754 standard.

The syntax of the IEEEremainder() method is:

Math.IEEEremainder(double x, double y)

Note: The IEEEremainder() method is a static method. Hence, we can call the method directly using the class name Math.


IEEEremainder() Parameters

  • x - the dividend which is divided by y
  • y - the divisor which divides x

IEEEremainder() Return Values

  • returns the remainder according to IEEE 754 standard

Example 1: Java Math.IEEEremainder()

class Main {
  public static void main(String[] args) {

    // declare variables
    double  arg1 = 25.0;
    double arg2 = 3.0;

    // perform Math.IEEEremainder() on arg1 and arg2
    System.out.println(Math.IEEEremainder(arg1, arg2));  // 1.0
  }
}

Difference between Math.IEEEremainder() and % Operator

The remainder returned by both the Math.IEEEremainder() method and % operator is equal to arg1 - arg2 * n. However, the value of n is different.

  • IEEEremainder() - n is closest integer to arg1/arg2. And, if arg1/arg2 returns a value in between two integers, n is even integer (i.e for result 1.5, n = 2).
  • % operator - n is the integer part of arg1/arg2 (for result 1.5, n = 1).
class Main {
  public static void main(String[] args) {

    // declare variables
    double  arg1 = 9.0;
    double arg2 = 5.0;

    // using Math.IEEEremainder()
    System.out.println(Math.IEEEremainder(arg1, arg2));  // -1.0

    // using % operator
    System.out.println(arg1 % arg2);  // 4.0
  }
}

In the above example, we can see that the remainder values returned by IEEEremainder() method and the % operator are different. It is because,

For Math.IEEEremainder()

   arg1/arg2
=> 1.8

   // for IEEEremainder()
   n = 2
   arg - arg2 * n
=> 9.0 - 5.0 * 2.0
=> -1.0

For % operator

   arg1/arg2
=> 1.8

   // for % operator
   n = 1
   arg1 - arg2 * n
=> 9.0 - 5.0 * 1.0
=> 4.0