BigDecimal remainder() method in Java with Examples

• Last Updated : 17 Jun, 2019

The java.math.BigDecimal.remainder(BigDecimal divisor) is used to calculate the remainder of two BigDecimals. The remainder is given by this.subtract(this.divideToIntegralValue(divisor).multiply(divisor)). This method performs an operation upon the current BigDecimal by which this method is called and the BigDecimal passed as the parameter.

Note: This is not the modulo operation (the result can be negative).

There are two overloads of remainder method available in Java which is listed below:

• remainder(BigDecimal divisor)
• remainder(BigDecimal divisor, MathContext mc)

remainder(BigDecimal divisor)

Syntax:

public BigDecimal remainder(BigDecimal divisor)

Parameters: This method accepts a parameter divisor by which this BigDecimal is to be divided for obtaining remainder.

Return value: This method returns a BigDecimal which holds the result (this % divisor).

Exception: The parameter divisor must not be 0 otherwise Arithmetic Exception is thrown.

Below programs is used to illustrate the remainder() method of BigDecimal.

 // Java program to demonstrate// remainder() method of BigDecimal  import java.math.BigDecimal;  public class GFG {    public static void main(String[] args)    {        // BigDecimal object to store the result        BigDecimal res;          // For user input        // Use Scanner or BufferedReader          // Two objects of String created        // Holds the values        String input1            = "31452678569";        String input2            = "2468";          // Convert the string input to BigDecimal        BigDecimal a            = new BigDecimal(input1);        BigDecimal divisor            = new BigDecimal(input2);          // Using remainder() method        res = a.remainder(divisor);          // Display the result in BigDecimal        System.out.println(res);    }}
Output:
373

remainder(BigDecimal divisor, MathContext mc)

This method is used to calculate the remainder of two BigDecimals whose value is (this % divisor), with rounding according to the context settings. The MathContext settings affect the implicit divide used to compute the remainder. Therefore, the remainder may contain more than mc.getPrecision() digits.

Syntax:

public BigDecimal remainder(BigDecimal divisor, MathContext mc)

Parameters: This method accepts a parameter divisor by which this BigDecimal is to be divided and a parameter mc of type MathContext for context settings.

Return value: This method returns a BigDecimal which holds the result (this % divisor).

Exception: The method throws Arithmetic Exception for following conditions:

• The parameter divisor must not be 0.
• If mc.precision > 0 and the result requires a precision of more than mc.precision digits.

Below programs is used to illustrate the remainder() method of BigDecimal.

 // Java program to demonstrate// remainder() method of BigDecimal  import java.math.*;  public class GFG {    public static void main(String[] args)    {        // BigDecimal object to store the result        BigDecimal res;          // For user input        // Use Scanner or BufferedReader          // Two objects of String created        // Holds the values        String input1            = "24536482";        String input2            = "264";          // Convert the string input to BigDecimal        BigDecimal a            = new BigDecimal(input1);        BigDecimal divisor            = new BigDecimal(input2);          // Set precision to 5        MathContext mc            = new MathContext(5);          // Using remainder() method        res = a.remainder(divisor, mc);          // Display the result in BigDecimal        System.out.println(res);    }}