Java中的 BigDecimal divideAndRemainder() 方法及示例
Java.math.BigDecimal .divideAndRemainder(BigDecimal divisor)用于计算两个 BigDecimal 的商和余数。如果同时需要整数商和余数,则此方法比单独使用divideToIntegralValue()和剩余()方法更快,因为除法只需要执行一次。此方法对调用此方法的当前 BigDecimal 执行操作,并将 BigDecimal 作为参数传递。
Java中有两个可用的divideAndRemainder方法重载,如下所示:
- divideAndRemainder(BigDecimal 除数)
- divideAndRemainder(BigDecimal 除数,MathContext mc)
divideAndRemainder(BigDecimal 除数)
句法:
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
参考: Java : Java(Java )
divideAndRemainder(BigDecimal 除数,MathContext mc)
此方法用于计算除法积分值()的结果,然后是余数()根据上下文设置计算的两个操作数的结果的商。
句法:
public BigDecimal[] divideAndRemainder(BigDecimal divisor,
MathContext mc)
参数:此方法接受两个参数:
- 这个 BigDecimal 被除以的除数
- 用于上下文设置的MathContext类型的mc 。
返回值:此方法返回一个大小为 2 的 BigDecimal 数组,其中包含商和余数。
异常:该方法在以下情况下抛出算术异常:
- 如果参数除数为0 。
- 如果结果不精确但舍入模式为UNNECESSARY或mc.precision > 0并且 this.divideToIntgralValue(divisor) 的结果需要超过 mc.precision 位数的精度。
下面的程序用于说明 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
= "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 : Java(Java, Java )
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。