當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。