BigDecimal remainder(BigDecimal divisor, MathContext mc)

优质
小牛编辑
131浏览
2023-12-01

描述 (Description)

java.math.BigDecimal.remainder(BigDecimal divisor, MathContext mc)返回一个BigDecimal,其值为(this%divisor),并根据上下文设置进行舍入。

MathContext设置会影响用于计算余数的隐式除法。 余数计算本身按照定义是精确的。 因此,余数可能包含多个mc.getPrecision()数字。

余数由this.subtract(this.divideToIntegralValue(divisor,mc).multiply(divisor))给出。 这不是模运算,即结果可能是负的。

声明 (Declaration)

以下是java.math.BigDecimal.remainder()方法的声明。

public BigDecimal remainder(BigDecimal divisor, MathContext mc)

参数 (Parameters)

  • divisor - 要分割此BigDecimal的值。

  • mc - 要使用的上下文。

返回值 (Return Value)

当BigDecimal对象除以除数时,此方法返回余数,即此除数,根据需要舍入。

异常 (Exception)

  • ArithmeticException - 如果divisor == 0。

  • ArithmeticException - 如果结果不精确但舍入模式为UNNECESSARY,或者mc.precision为“0”且此.divideToIntgralValue(除数)的结果将要求精度大于mc.precision数字。

例子 (Example)

以下示例显示了math.BigDecimal.remainder()方法的用法。

package cn.xnip;
import java.math.*;
public class BigDecimalDemo {
   public static void main(String[] args) {
      // create 3 BigDecimal Objects
      BigDecimal bg1, bg2, bg3;
      MathContext mc = new MathContext(2); // 2 precision
      bg1 = new BigDecimal("-144.144");
      bg2 = new BigDecimal("16.12");
      // bg2 divided by bg1 using mc gives bg3 as remainder
      bg3 = bg1.remainder(bg2, mc);
      String str = "The remainder is " + bg3;
      // print the value of bg3
      System.out.println( str );
   }
}

让我们编译并运行上面的程序,这将产生以下结果 -

The remainder is -15.184