Java-math-bigdecimal-setscale-roundingmode
提供:Dev Guides
Java.math.BigDecimal.setScale()メソッド
説明
- java.math.BigDecimal.setScale(int newScale、int roundingMode)*は、指定された値のスケールを持つBigDecimalを返します。そのスケールなしの値は、このBigDecimalのスケールなしの値を適切な10の累乗で乗算または除算して決定します全体的な価値。
操作によってスケールが縮小される場合、スケールされていない値は(乗算ではなく)分割する必要があり、値は変更される場合があります。 ここでは、指定された丸めモードが除算に適用されます。
BigDecimalオブジェクトは不変であるため、このメソッドを呼び出しても、setX mutateフィールドXという名前のメソッドを持つ通常の規則に反して、元のオブジェクトは変更されません。 代わりに、setScaleは適切なスケールのオブジェクトを返します。返されるオブジェクトは、新しく割り当てられる場合と割り当てられない場合があります。
宣言
次に、* java.math.BigDecimal.setScale()*メソッドの宣言を示します。
public BigDecimal setScale(int newScale, int roundingMode)
パラメーター
- newScale -返されるBigDecimal値のスケール。
- roundingMode -適用する丸めモード。
戻り値
このメソッドは、スケールが指定された値であるBigDecimalを返し、そのスケールなしの値は、このBigDecimalのスケールなしの値を適切な10の累乗で乗算または除算することで決定されます。
例外
- ArithmeticException -roundingMode == ROUND_UNNECESSARYで、指定されたスケーリング操作に丸めが必要な場合。
- IllegalArgumentException -roundingModeが有効な丸めモードを表さない場合。
例
次の例は、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
//0 specifies ROUND_UP
bg2 = bg1.setScale(2, 0);
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.13