Open In App

BigDecimal sqrt() Method in Java with Examples

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

The java.math.BigDecimal.sqrt(MathContext mc) is an inbuilt function added in Java SE 9 & JDK 9 which returns BigDecimal value of square root of a BigDecimal on which sqrt() method is applied with rounding according to the context settings.

Syntax:

public BigDecimal sqrt(MathContext mc)

Parameters: This method accepts a parameter mc of type MathContext for context settings.

Return Value: This method returns an approximation to the square root of this with rounding according to the context settings.

Exception: The method throws ArithmeticException for following conditions.

  • If BigDecimal number is less than zero.
  • If an exact result is requested (Precision = 0) and there is no finite decimal expansion of the exact result.
  • If the exact result cannot fit in Precision digits.

Note: This method is only available from JDK 9.

Below programs are used to illustrate the sqrt() method of BigDecimal:

Example 1:




// Java program to demonstrate sqrt() method
  
import java.math.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating a BigDecimal object
        BigDecimal a, squareRoot;
  
        a = new BigDecimal("100000000000000000000");
  
        // Set precision to 10
        MathContext mc
            = new MathContext(10);
  
        // calculate square root of bigDecimal
        // using sqrt() method
        squareRoot = a.sqrt(mc);
  
        // print result
        System.out.println("Square root value of " + a
                           + " is " + squareRoot);
    }
}


Output:

Square root value of 100000000000000000000 is 1.000000000E+10

Example 2: Showing Exception thrown by sqrt() method.




// Java program to demonstrate sqrt() method
  
import java.math.*;
  
class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating a BigDecimal object
        BigDecimal a, squareRoot;
  
        a = new BigDecimal("-4");
  
        // Set precision to 10
        MathContext mc
            = new MathContext(10);
  
        // calculate square root of bigDecimal
        // using sqrt() method
        try {
            squareRoot = a.sqrt(mc);
  
            // print result
            System.out.println("Square root"
                               + " value of " + a
                               + " is " + squareRoot);
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}


Output:

java.lang.ArithmeticException: Attempted square root of negative BigDecimal

References: https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html#sqrt-java.math.MathContext-



Last Updated : 29 May, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads