Java BigDecimal divideAndRemainder() 的方法和示例
写在前面
在这里,我们将要学习BigDecimal divideAndRemainder()怎么在实际场景中使用
BigDecimal Class divideAndRemainder() 的方法
语法
public BigDecimal add(BigDecimal val);
public BigDecimal add(BigDecimal val, MathContext ma_co);
divideAndRemainder(BigDecimal divsr) method 用于获得包含两个元素(商和余数)的BigDecimal数组,它首先使用divideToIntegralValue()进行除法,然后使用“BigDecimal”类型的两个值的余数的结果进行操作
divideAndRemainder(BigDecimal divsr, MathContext ma_co) method 用于获得包含两个元素(商和余数)的BigDecimal数组,它首先使用divideToIntegralValue()进行除法,然后根据给定的MathContext设置对“BigDecimal”类型的两个值进行操作,并对其进行舍入处理,得到余数的结果。
这些方法在计算余数时可能会抛出异常。
ArithmeticException: 当给定参数持有值0或结果不准确并将舍入模式设置为"UNNECESSARY"时,可能会抛出此异常。
这些都是非静态方法,可以通过类对象访问,如果我们试图用类名访问这些方法,我们会得到一个错误。
参数
第一个例子 divideAndRemainder(BigDecimal divsr)
BigDecimal divsr :表示该BigDecimal值的除数将被除并生成余数。
第二个例子:divideAndRemainder(BigDecimal divsr, MathContext ma_co)
BigDecimal divsr – 与第一种情况的定义类似。
MathContext ma_co – 表示要在舍入中使用的上下文设置。
返回值
在这两种情况下,方法的返回类型都是BigDecimal[],它返回一个包含两个元素的BigDecimal数组,第一个元素是商,最后一个元素是余数。
示例
// Java program to demonstrate the example
// of divideAndRemainder() method of BigDecimal
import java.math.*;
public class DivideAndRemainderOfBD {
public static void main(String args[]) {
// Initialize three variables divi1,
// divi2 and str
int divi1 = 120;
int divi2 = 4;
String str = "5.6";
// Initialize three BigDecimal objects and
// one MathContext
BigDecimal b_dec1 = new BigDecimal(divi1);
BigDecimal b_dec2 = new BigDecimal(divi2);
BigDecimal b_dec3 = new BigDecimal(str);
MathContext ma_co = new MathContext(3, RoundingMode.CEILING);
System.out.println("divideAndRemainder(BigDecimal): ");
// divides this BigDecimal (b_dec1) by the
// given BigDecimal (b_dec2) and return the BigDecimal[]
// of two values (Quotient, Remainder)
BigDecimal[] div_rem = b_dec1.divideAndRemainder(b_dec2);
System.out.println("Quotient div_rem[0]: " + div_rem[0]);
System.out.println("Remainder div_rem[1]: " + div_rem[1]);
System.out.println(" ");
System.out.println("divideAndRemainder(BigDecimal,MathContext): ");
// divides this BigDecimal (b_dec1) by the
// given BigDecimal (b_dec3) based on the given context setting
// and return the BigDecimal[] of two values (Quotient, Remainder)
div_rem = b_dec1.divideAndRemainder(b_dec3, ma_co);
System.out.println("Quotient div_rem[0]: " + div_rem[0]);
System.out.println("Remainder div_rem[1]: " + div_rem[1]);
}
}
输出
divideAndRemainder(BigDecimal):
Quotient div_rem[0]: 30 Remainder
div_rem[1]: 0divideAndRemainder(BigDecimal,MathContext):
Quotient div_rem[0]: 21
Remainder div_rem[1]: 2.4