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
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);
}
}
}
java.lang.ArithmeticException: Division impossible
相關用法
- Java 8 BigInteger divideAndRemainder()用法及代碼示例
- Java BigDecimal pow()用法及代碼示例
- Java BigDecimal add()用法及代碼示例
- Java BigDecimal divideToIntegralValue()用法及代碼示例
- Java BigDecimal sqrt()用法及代碼示例
- Java BigDecimal divide()用法及代碼示例
- Java BigDecimal toEngineeringString()用法及代碼示例
- Java BigDecimal subtract()用法及代碼示例
- Java BigDecimal remainder()用法及代碼示例
- Java BigDecimal toPlainString()用法及代碼示例
- Java BigDecimal toString()用法及代碼示例
- Java BigDecimal setScale()用法及代碼示例
- Java BigDecimal floatValue()用法及代碼示例
- Java BigDecimal abs()用法及代碼示例
- Java BigDecimal plus()用法及代碼示例
注:本文由純淨天空篩選整理自Rajnis09大神的英文原創作品 BigDecimal divideAndRemainder() Method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。