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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。