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


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


java.math.BigDecimal.divideAndRemainder(BigDecimal divisor)用於計算兩個BigDecimal的商和餘數。如果同時需要整數商和餘數,則此方法比分別使用divideToIntegralValue()和remainder()方法要快,因為除法隻需要執行一次即可。此方法對當前的BigDecimal進行操作,調用該方法並將BigDecimal作為參數傳遞。

Java中提供了divideAndRemainder方法的兩個重載,如下所示:


  • splitAndRemainder(BigDecimal divisor)
  • splitAndRemainder(BigDecimal divisor,MathContext mc)

divideAndRemainder(BigDecimal divisor)

用法:

public BigDecimal[] divideAndRemainder(BigDecimal divisor)

參數:此方法接受參數除數,該BigDecimal將通過該參數除以獲得餘數和商。
返回值:此方法返回大小為2的BigDecimal數組,其中包含
異常:參數除數必須不0除此以外算術異常被拋出。

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

// Java program to demonstrate 
// divideAndRemainder() 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 
            = "456865265569"; 
        String input2 
            = "65245"; 
  
        // Convert the string input to BigDecimal 
        BigDecimal a 
            = new BigDecimal(input1); 
        BigDecimal divisor 
            = new BigDecimal(input2); 
  
        // Using divideAndRemainder() method 
        res = a.divideAndRemainder(divisor); 
  
        // Display the result in BigDecimal 
        System.out.println("Quotient = " + res[0] 
                           + "\nRemainder = " + res[1]); 
    } 
}
輸出:
Quotient = 7002303
Remainder = 6334

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

divideAndRemainder(BigDecimal divisor, MathContext mc)

此方法用於計算商,該商是根據上下文設置對取整而計算出的兩個操作數上的divideToIntegralValue()的結果,然後是remainder()的結果。

用法:

public BigDecimal[] divideAndRemainder(BigDecimal divisor, 
                                       MathContext mc)

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

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

返回值:此方法返回一個大小為2的BigDecimal數組,其中包含商和餘數。

異常:該方法在以下情況下引發Arithmetic Exception:


  • 如果參數除數為0。
  • 如果結果不精確,但舍入模式為UNNECESSARY或mc.precision> 0,this.divideToIntgralValue(divisor)的結果將需要超過mc.precision位數的精度。

下麵的程序用於說明BigDecimal的divideAndRemainder()方法。
示例1:

// Java program to demonstrate 
// divideAndRemainder() 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 
            = "4568652655"; 
        String input2 
            = "2562"; 
  
        // Convert the string input to BigDecimal 
        BigDecimal a 
            = new BigDecimal(input1); 
        BigDecimal divisor 
            = new BigDecimal(input2); 
  
        // Set precision to 10 
        MathContext mc 
            = new MathContext(10); 
  
        try { 
            // Using divideAndRemainder() method 
            res = a.divideAndRemainder(divisor, mc); 
  
            // Display the result in BigDecimal 
            System.out.println("Quotient = " + res[0] 
                               + "\nRemainder = " + res[1]); 
        } 
        catch (Exception e) { 
  
            System.out.println(e); 
        } 
    } 
}
輸出:
Quotient = 1783236
Remainder = 2023

示例2:程序顯示通過divideAndRemainder()方法引發的異常。

// Java program to demonstrate 
// divideAndRemainder() 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 
            = "4568652655"; 
        String input2 
            = "2562"; 
  
        // 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); 
  
        try { 
            // Using divideAndRemainder() method 
            res = a.divideAndRemainder(divisor, mc); 
  
            // Display the result in BigDecimal 
            System.out.println("Quotient = " + res[0] 
                               + "\nRemainder = "
                               + res[1]); 
        } 
        catch (Exception e) { 
  
            System.out.println(e); 
        } 
    } 
}

相關用法


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