Java-math-bigdecimal-setscale

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

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

説明

  • java.math.BigDecimal.setScale(int newScale)*は、スケールが指定された値であり、値がこのBigDecimalの数値と等しいBigDecimalを返します。 これが不可能な場合、ArithmeticExceptionをスローします。

この呼び出しは通常、スケールを大きくするために使用されます。その場合、指定されたスケールと正しい値のBigDecimalが存在することが保証されます。 呼び出しは、BigDecimalの小数部分の終わりに十分な数のゼロ(つまり、整数値の10倍)があり、値を変更せずに再スケーリングできることを呼び出し元が知っている場合、スケールを縮小するためにも使用できます。

このメソッドは、引数が2つのバージョンのsetScaleと同じ結果を返しますが、呼び出し側が無関係な場合に丸めモードを指定する手間を省きます。

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

宣言

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

public BigDecimal setScale(int newScale)

パラメーター

*newScale* -返されるBigDecimal値のスケール。

戻り値

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

例外

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

次の例は、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.126");

     //set scale of bg1 to 6 in bg2
      bg2 = bg1.setScale(6);

      String str = "The value of " +bg1+ " after changing the scale to 6 is " +bg2;

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

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

The value of 123.126 after changing the scale to 6 is 123.126000