Java BigDecimal sqrt()方法及示例

Java BigDecimal sqrt()方法及示例

java.math.BigDecimal .sqrt(MathContext mc)Java SE 9和JDK 9中添加的一个内置函数,它可以返回BigDecimal的平方根值,并根据上下文设置对其应用sqrt()方法进行舍入。

语法

public BigDecimal sqrt(MathContext mc)

参数: 该方法接受一个 MathContext 类型的参数mc,用于上下文设置。

返回值: 该方法根据上下文的设置,返回一个四舍五入的 平方根的近似值

异常: 该方法在以下情况下会抛出ArithmeticException。

  • 如果BigDecimal数字小于0。
  • 如果要求一个精确的结果(Precision = 0),并且没有精确结果的有限小数扩展。
  • 如果精确的结果不能符合Precision的位数。

注意:此方法仅从JDK 9开始可用。

下面的程序用来说明BigDecimal的sqrt()方法。

例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

例2:显示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

参考文献 : https://docs.oracle.com/javase/9/docs/api/java/math/BigDecimal.html#sqrt-java.math.MathContext-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程