当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java BigDecimal sqrt()用法及代码示例


java.math.BigDecimal.sqrt(MathContext mc)是Java SE 9和JDK 9中添加的内置函数,该函数返回BigDecimal的平方根的BigDecimal值,并根据上下文设置对sqrt()方法进行了四舍五入。

用法:

public BigDecimal sqrt(MathContext mc)

参数:此方法接受MathContext类型的参数mc进行上下文设置。


返回值:此方法根据上下文设置使用舍入返回此值的平方根的近似值。

异常:该方法在满足以下条件时抛出ArithmeticException。

  • 如果BigDecimal的数字小于零。
  • 如果要求精确结果(Precision = 0),并且精确结果没有有限的十进制扩展。
  • 如果精确结果不能适合精度数字。

注意:仅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-



相关用法


注:本文由纯净天空筛选整理自Rajnis09大神的英文原创作品 BigDecimal sqrt() Method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。