Java BigDecimal divideAndRemainder() 的方法和示例

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]: 0

divideAndRemainder(BigDecimal,MathContext):
Quotient div_rem[0]: 21
Remainder div_rem[1]: 2.4

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值