BigDecimal的剩余方法可能会返回负值,为什么?

时间:2016-06-06 15:54:55

标签: java

在什么情况下BigDecimal的余数方法会返回负值?

在Javadoc https://root.cern.ch/phpBB3/中注明:

  

其余部分由{{1}}给出。请注意,这不是模运算(结果可能是负数)。

1 个答案:

答案 0 :(得分:0)

根据JavaDoc,该操作的结果计算如下:

  

其余部分由

提供

this.subtract(this.divideToIntegralValue(divisor).multiply(divisor))

所以:如果BigInteger的实例指向负数,则结果可以是负数。

实施例

  public static void main(String[] args) {
    BigInteger a = new BigInteger("-100");
    BigInteger b = new BigInteger("3");
    BigInteger result = a.remainder(b);
    System.out.println(result);
    }

这将打印 -1