java.math.BigDecimal .sqrt (MathContext mc) es una función incorporada agregada en Java SE 9 y JDK 9 que devuelve el valor BigDecimal de la raíz cuadrada de un BigDecimal en el que se aplica el método sqrt() con redondeo según la configuración del contexto.
Sintaxis:
public BigDecimal sqrt(MathContext mc)
Parámetros: este método acepta un parámetro mc de tipo MathContext para la configuración de contexto.
Valor devuelto: este método devuelve una aproximación a la raíz cuadrada de este con redondeo según la configuración del contexto.
Excepción: el método lanza ArithmeticException para las siguientes condiciones.
- Si el número BigDecimal es menor que cero.
- Si se solicita un resultado exacto (Precisión = 0) y no hay expansión decimal finita del resultado exacto.
- Si el resultado exacto no cabe en los dígitos de precisión.
Nota: este método solo está disponible desde JDK 9 .
Los siguientes programas se utilizan para ilustrar el método sqrt() de BigDecimal:
Ejemplo 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); } }
Square root value of 100000000000000000000 is 1.000000000E+10
Ejemplo 2: Muestra una excepción lanzada por el método sqrt().
// 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); } } }
java.lang.ArithmeticException: Attempted square root of negative BigDecimal
Referencias: https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html#sqrt-java.math.MathContext-