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:
Java
Java
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.
// 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:
Example 2: Showing Exception thrown by sqrt() method.
Square root value of 100000000000000000000 is 1.000000000E+10
// 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:
References: https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html#sqrt-java.math.MathContext-java.lang.ArithmeticException: Attempted square root of negative BigDecimal