Java.math.BigDecimal.remainder() 方法

描述

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

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

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


声明

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

public BigDecimal remainder(BigDecimal divisor, MathContext mc)

参数

  • divisor − 此 BigDecimal 将被除以的值。

  • mc − 要使用的上下文。


返回值

此方法返回 BigDecimal 对象除以除数时的余数,即 this % 除数,根据需要四舍五入。


异常

  • ArithmeticException − 如果除数 == 0。

  • ArithmeticException − 如果结果不精确但舍入模式为 UNNECESSARY 或 mc.precision > 0,并且 this.divideToIntgralValue(divisor) 的结果将需要超过 mc.precision 数字的精度。


示例

下面的例子展示了 math.BigDecimal.remainder() 方法的使用。

package com.tutorialspoint;

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