Java-math-bigdecimal-setscale-rm-roundingmode

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

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

説明

  • java.math.BigDecimal.setScale(int newScale、RoundingMode roundingMode)*は、指定された値のスケールを持つBigDecimalを返します。そのスケールなしの値は、このBigDecimalのスケールなしの値を適切な10の累乗で乗算または除算して決定します全体的な価値。

操作によってスケールが縮小される場合、スケールなしの値は(乗算ではなく)分割する必要があり、値は変更される可能性があります。この場合、指定された丸めモードが部門に適用されます。

BigDecimalオブジェクトは不変であるため、このメソッドを呼び出しても、setX mutateフィールドXという名前のメソッドを持つ通常の規則に反して、元のオブジェクトは変更されません。 代わりに、setScaleは適切なスケールのオブジェクトを返します。返されるオブジェクトは、新しく割り当てられる場合と割り当てられない場合があります。

宣言

次に、* java.math.BigDecimal.setScale()*メソッドの宣言を示します。

public BigDecimal setScale(int newScale, RoundingMode roundingMode)

パラメーター

  • newScale -返されるBigDecimal値のスケール。
  • roundingMode -適用する丸めモード。

戻り値

このメソッドは、スケールが指定された値であるBigDecimalを返し、そのスケールなしの値は、このBigDecimalのスケールなしの値を適切な10の累乗で乗算または除算することで決定されます。

例外

*ArithmeticException* -roundingMode == ROUND_UNNECESSARYで、指定されたスケーリング操作に丸めが必要な場合。

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

package com.finddevguides;

import java.math.*;

public class BigDecimalDemo {

   public static void main(String[] args) {

     //create 2 BigDecimal Objects
      BigDecimal bg1, bg2;

      bg1 = new BigDecimal("123.12678");

     //set scale of bg1 to 2 in bg2 using floor as rounding mode
      bg2 = bg1.setScale(2, RoundingMode.FLOOR);

      String str = bg1 + " after changing the scale to 2 and rounding is " +bg2;

     //print bg2 value
      System.out.println( str );
   }
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

123.12678 after changing the scale to 2 and rounding is 123.12