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


Java BigDecimal divide()用法及代碼示例


java.math.BigDecimal.divide(BigDecimal divisor)用於計算兩個BigDecimal的商。商由(this /除數)給出。此方法對當前的BigDecimal進行操作,調用該方法並將BigDecimal作為參數傳遞。

Java中有五種重載的除法方法重載,如下所示:


  • divide(BigDecimal divisor)
  • divide(BigDecimal divisor,MathContext mc)
  • divide(BigDecimal divisor,RoundingMode roundingMode)
  • divide(BigDecimal divisor,整數比例,RoundingMode roundingMode)
  • divide(BigDecimal divisor,int roundingMode)

注意:從Java 9開始不推薦使用divide(BigDecimal divisor,int roundingMode)。

divide(BigDecimal divisor)

商由(this /除數)給出,其首選標度為(this.scale() – divisor.scale())。
用法:

public BigDecimal divide(BigDecimal divisor)

參數:此方法接受參數除數,該BigDecimal將通過該參數除以獲得商。
返回值:此方法返回保存結果的BigDecimal(這個/除數)
異常:如果參數除數0或精確商沒有小數點後綴算術異常被拋出。

下麵的程序用於說明BigDecimal的divide()方法。

// Java program to demonstrate 
// divide() method of BigDecimal 
  
import java.math.BigDecimal; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
        // BigDecimal object to store the result 
        BigDecimal res; 
  
        // For user input 
        // Use Scanner or BufferedReader 
  
        // Two objects of String created 
        // Holds the values 
        String input1 
            = "204800000"; 
        String input2 
            = "256"; 
  
        // Convert the string input to BigDecimal 
        BigDecimal a 
            = new BigDecimal(input1); 
        BigDecimal divisor 
            = new BigDecimal(input2); 
  
        // Using divide() method 
        res = a.divide(divisor); 
  
        // Display the result in BigDecimal 
        System.out.println(res); 
    } 
}
輸出:
800000

參考: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal)

divide(BigDecimal divisor, MathContext mc)

此方法用於計算兩個BigDecimal(其值為(this /divisor))的商,並根據上下文設置進行舍入。
用法:

public BigDecimal divide(BigDecimal divisor,
                         MathContext mc)

參數:此方法接受兩個參數:

  • divisor以此BigDecimal除以
  • mc類型為MathContext的上下文設置。

返回值:此方法返回一個保存結果(this /divisor)的BigDecimal,並根據需要四舍五入。

異常:如果結果不精確,但舍入模式為UNNECESSARY或mc.precision == 0,並且商具有非終止的十進製擴展,則該方法將引發Arithmetic Exception。


下麵的程序用於說明BigDecimal的divide()方法。

// Java program to demonstrate 
// divide() method of BigDecimal 
  
import java.math.*; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
        // BigDecimal object to store the result 
        BigDecimal res; 
  
        // For user input 
        // Use Scanner or BufferedReader 
  
        // Two objects of String created 
        // Holds the values 
        String input1 
            = "24536482"; 
        String input2 
            = "264"; 
  
        // Convert the string input to BigDecimal 
        BigDecimal a 
            = new BigDecimal(input1); 
        BigDecimal divisor 
            = new BigDecimal(input2); 
  
        // Set precision to 5 
        MathContext mc 
            = new MathContext(5); 
  
        // Using divide() method 
        res = a.divide(divisor, mc); 
  
        // Display the result in BigDecimal 
        System.out.println(res); 
    } 
}
輸出:
92941

參考: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal, java.math.MathContext)

divide(BigDecimal divisor, RoundingMode roundingMode)

商由(this /divisor)給出,其首選標度是this.scale()。如果需要舍入以生成給定比例的結果,則應用特定的舍入模式。
用法:

public BigDecimal divide(BigDecimal divisor,
                         RoundingMode roundingMode)

參數:此方法接受兩個參數:

  • divisor以此BigDecimal除以
  • roundingMode類型RoundingMode,它指示要應用的舍入模式。

返回值:此方法返回一個保存結果(此/除數)的BigDecimal。
異常:方法拋出算術異常如果roundingMode為UNNECESSARY且this.scale()不足以精確表示除法的結果,或者除數是0。

下麵的程序用於說明BigDecimal的divide()方法。

// Java program to demonstrate 
// divide() method of BigDecimal 
  
import java.math.*; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
        // BigDecimal object to store the result 
        BigDecimal res; 
  
        // For user input 
        // Use Scanner or BufferedReader 
  
        // Two objects of String created 
        // Holds the values 
        String input1 
            = "2453648454542"; 
        String input2 
            = "264"; 
  
        // Convert the string input to BigDecimal 
        BigDecimal a 
            = new BigDecimal(input1); 
        BigDecimal divisor 
            = new BigDecimal(input2); 
  
        // Using divide() method 
        // Using RoundingMode.CEILING 
        res = a.divide(divisor, RoundingMode.CEILING); 
  
        // Display the result in BigDecimal 
        System.out.println(res); 
    } 
}
輸出:
9294122934

參考: https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/math/BigDecimal.html#divide(java.math.BigDecimal, java.math.RoundingMode)

divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

商由(this /除數)給出,其首選標度已指定。如果需要舍入以生成具有指定比例的結果,則將應用指定的舍入模式。
用法:


public BigDecimal divide(BigDecimal divisor, 
                         int scale, 
                         RoundingMode roundingMode)

參數:此方法接受三個參數:

  • divisor以此BigDecimal除以
  • roundingMode類型RoundingMode,它指示要應用的舍入模式
  • scale設置商的比例。

返回值:此方法返回一個保存結果(此/除數)的BigDecimal。
異常:方法拋出算術異常如果roundingMode為UNNECESSARY並且指定的比例不足以精確表示除法的結果,或者除數是0。

下麵的程序用於說明BigDecimal的divide()方法。

// Java program to demonstrate 
// divide() method of BigDecimal 
  
import java.math.*; 
  
public class GFG { 
    public static void main(String[] args) 
    { 
        // BigDecimal object to store the result 
        BigDecimal res; 
  
        // For user input 
        // Use Scanner or BufferedReader 
  
        // Two objects of String created 
        // Holds the values 
        String input1 
            = "2453648454542"; 
        String input2 
            = "264"; 
  
        // Convert the string input to BigDecimal 
        BigDecimal a 
            = new BigDecimal(input1); 
        BigDecimal divisor 
            = new BigDecimal(input2); 
  
        // Using scale = 4 
        int scale = 4; 
  
        // Using divide() method 
        // Using RoundingMode.CEILING 
        res = a.divide(divisor, scale, 
                       RoundingMode.CEILING); 
  
        // Display the result in BigDecimal 
        System.out.println(res); 
    } 
}

相關用法


注:本文由純淨天空篩選整理自Rajnis09大神的英文原創作品 BigDecimal divide() Method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。