Java-math-bigdecimal-remainder-mc

提供:Dev Guides
移動先:案内検索

Java.math.BigDecimal.remainder()メソッド

説明

  • java.math.BigDecimal.remainder(BigDecimal divisor、MathContext mc)*は、値が(this%divisor)であるBigDecimalを、コンテキスト設定に従って丸めて返します。

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オブジェクトが除数、つまりこの%除数で除算され、必要に応じて丸められたときに剰余を返します。

例外

  • ArithmeticException -除数== 0の場合。
  • ArithmeticException -結果が正確ではないが、丸めモードがUNNECESSARYまたはmc.precision> 0で、this.divideToIntgralValue(divisor)の結果がmc.precision桁以上の精度を必要とする場合。

次の例は、math.BigDecimal.remainder()メソッドの使用法を示しています。

package com.finddevguides;

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