- java.lang.Object
-
- java.lang.Enum<RoundingMode>
-
- java.math.RoundingMode
-
- すべての実装されたインタフェース:
Serializable,Comparable<RoundingMode>
public enum RoundingMode extends Enum<RoundingMode>
精度を破棄できる数値演算に対する丸め動作を指定します。 各丸めモードは、丸められた結果の返された最下位の桁の計算方法を指定します。 正確な数値結果を表現するのに必要な桁数よりも少ない桁数しかない場合、破棄された桁は、その桁の数値における役割にかかわらず、破棄される小数部と呼ばれます。 つまり、破棄される小数部は数値と見なされ、1よりも大きな絶対値を持つことができます。各丸めモードの記述には、2桁の異なる10進数値を、当該の丸めモードで1桁の10進数値に丸める方法を示す表があります。 表の結果列は、指定された値を持つ
BigDecimal数を作成し、適切な設定(precisionが1、roundingModeが当該の丸めモードに設定)を持つMathContextオブジェクトを形成して、適切なMathContextを使用してこの数値に対しroundを呼び出すことで取得できます。 次に、すべての丸めモードの丸め演算の結果を示すサマリー表を示します。さまざまな丸めモードでの丸め演算のサマリー 入力される数値 特定の丸めモードで入力を1桁に丸めた結果 UPDOWNCEILINGFLOORHALF_UPHALF_DOWNHALF_EVENUNNECESSARY5.5 6 5 6 5 6 5 6 ArithmeticExceptionをスロー2.5 3 2 3 2 3 2 2 ArithmeticExceptionをスロー1.6 2 1 2 1 2 2 2 ArithmeticExceptionをスロー1.1 2 1 2 1 1 1 1 ArithmeticExceptionをスロー1.0 1 1 1 1 1 1 1 1 -1.0 -1 -1 -1 -1 -1 -1 -1 -1 -1.1 -2 -1 -1 -2 -1 -1 -1 ArithmeticExceptionをスロー-1.6 -2 -1 -1 -2 -2 -2 -2 ArithmeticExceptionをスロー-2.5 -3 -2 -2 -3 -3 -2 -2 ArithmeticExceptionをスロー-5.5 -6 -5 -5 -6 -6 -5 -6 ArithmeticExceptionをスローこの
enumは、BigDecimal(BigDecimal.ROUND_UP、BigDecimal.ROUND_DOWNなど)の丸めモード定数の整数ベースの列挙を置き換えるために使用されます。- 導入されたバージョン:
- 1.5
- 関連項目:
BigDecimal,MathContext
-
-
列挙型定数のサマリー
列挙型定数 列挙型定数 説明 CEILING正の無限大に近づくように丸めるモードです。DOWN0に近づくように丸めるモードです。FLOOR負の無限大に近づくように丸めるモードです。HALF_DOWN「もっとも近い数字」に丸める丸めモードです(両隣りの数字が等距離の場合は切り捨てます)。HALF_EVEN「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は偶数側に丸めます)。HALF_UP「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は切り上げます)。UNNECESSARY要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。UP0から離れるように丸めるモードです。
-
メソッドのサマリー
すべてのメソッド staticメソッド 具象メソッド 修飾子と型 メソッド 説明 static RoundingModevalueOf(int rm)BigDecimalのレガシー整数丸めモード定数に対応するRoundingModeオブジェクトを返します。static RoundingModevalueOf(String name)指定された名前を持つ、この型の列挙型定数を返します。static RoundingMode[]values()この列挙型の定数を含む配列を、宣言されている順序で返します。
-
-
-
列挙型定数の詳細
-
UP
public static final RoundingMode UP
0から離れるように丸めるモードです。 破棄される0以外の小数部に先行する桁を常に増やします。 この丸めモードは、計算された値の絶対値を減らしません。例:
丸めモードUPの例 入力される数値 UPによる丸めで
1桁に丸められた入力5.5 6 2.5 3 1.6 2 1.1 2 1.0 1 -1.0 -1 -1.1 -2 -1.6 -2 -2.5 -3 -5.5 -6
-
DOWN
public static final RoundingMode DOWN
0に近づくように丸めるモードです。 破棄される小数部に先行する桁を増分しません(つまり切り捨て)。 この丸めモードは、計算された値の絶対値を増やしません。例:
丸めモードDOWNの例 入力される数値 DOWNによる丸めで
1桁に丸められた入力5.5 5 2.5 2 1.6 1 1.1 1 1.0 1 -1.0 -1 -1.1 -1 -1.6 -1 -2.5 -2 -5.5 -5
-
CEILING
public static final RoundingMode CEILING
正の無限大に近づくように丸めるモードです。 結果が正の場合はRoundingMode.UPのように動作し、負の場合はRoundingMode.DOWNのように動作します。 この丸めモードは、計算された値を減らしません。例:
丸めモードCEILINGの例 入力される数値 CEILINGによる丸めで
1桁に丸められた入力5.5 6 2.5 3 1.6 2 1.1 2 1.0 1 -1.0 -1 -1.1 -1 -1.6 -1 -2.5 -2 -5.5 -5
-
FLOOR
public static final RoundingMode FLOOR
負の無限大に近づくように丸めるモードです。 結果が正の場合はRoundingMode.DOWNのように動作し、負の場合はRoundingMode.UPのように動作します。 この丸めモードは、計算された値を増やしません。例:
丸めモードFLOORの例 入力される数値 FLOORによる丸めで
1桁に丸められた入力5.5 5 2.5 2 1.6 1 1.1 1 1.0 1 -1.0 -1 -1.1 -2 -1.6 -2 -2.5 -3 -5.5 -6
-
HALF_UP
public static final RoundingMode HALF_UP
「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は切り上げます)。 破棄される小数部が0.5以上の場合はRoundingMode.UPのように、それ以外の場合はRoundingMode.DOWNのように動作します。 これは我々の大半が小学校で習った丸めモードのことです。例:
丸めモードHALF_UPの例 入力される数値 HALF_UPによる丸めで
1桁に丸められた入力5.5 6 2.5 3 1.6 2 1.1 1 1.0 1 -1.0 -1 -1.1 -1 -1.6 -2 -2.5 -3 -5.5 -6
-
HALF_DOWN
public static final RoundingMode HALF_DOWN
「もっとも近い数字」に丸める丸めモードです(両隣りの数字が等距離の場合は切り捨てます)。 破棄される小数部が0.5を超える場合はRoundingMode.UPのように、それ以外の場合はRoundingMode.DOWNのように動作します。例:
丸めモードHALF_DOWNの例 入力される数値 HALF_DOWNによる丸めで
1桁に丸められた入力5.5 5 2.5 2 1.6 2 1.1 1 1.0 1 -1.0 -1 -1.1 -1 -1.6 -2 -2.5 -2 -5.5 -5
-
HALF_EVEN
public static final RoundingMode HALF_EVEN
「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は偶数側に丸めます)。 破棄する小数部の左側の桁が奇数の場合はRoundingMode.HALF_UPのように、偶数の場合はRoundingMode.HALF_DOWNのように動作します。 この丸めモードは、連続する計算で繰返し適用される場合に累積エラーを統計的に最小限にします。 これは「銀行方式の丸め」としても知られ、主に米国で使用されます。 この丸めモードは、Javaのfloatおよびdouble算術演算で使用される丸め方針と同様です。例:
丸めモードHALF_EVENの例 入力される数値 HALF_EVENによる丸めで
1桁に丸められた入力5.5 6 2.5 2 1.6 2 1.1 1 1.0 1 -1.0 -1 -1.1 -1 -1.6 -2 -2.5 -2 -5.5 -6
-
UNNECESSARY
public static final RoundingMode UNNECESSARY
要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。 この丸めモードが結果が正確でない演算で指定される場合は、ArithmeticExceptionがスローされます。例:
丸めモードUNNECESSARYの例 入力される数値 UNNECESSARYによる丸めで
1桁に丸められた入力5.5 ArithmeticExceptionをスロー2.5 ArithmeticExceptionをスロー1.6 ArithmeticExceptionをスロー1.1 ArithmeticExceptionをスロー1.0 1 -1.0 -1 -1.1 ArithmeticExceptionをスロー-1.6 ArithmeticExceptionをスロー-2.5 ArithmeticExceptionをスロー-5.5 ArithmeticExceptionをスロー
-
-
メソッドの詳細
-
values
public static RoundingMode[] values()
この列挙型の定数を含む配列を、宣言されている順序で返します。 このメソッドは、次のようにして定数を反復するために使用できます。for (RoundingMode c : RoundingMode.values()) System.out.println(c);
- 戻り値:
- この列挙型の定数を宣言されている順序で含む配列
-
valueOf
public static RoundingMode valueOf(String name)
指定された名前を持つ、この型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と厳密に一致している必要があります。 不適切な空白文字は許可されません。- パラメータ:
name- 返される列挙型定数の名前。- 戻り値:
- 指定された名前を持つ列挙型定数
- 例外:
IllegalArgumentException- 指定された名前を持つ定数をこの列挙型が持っていない場合NullPointerException- 引数がnullの場合
-
valueOf
public static RoundingMode valueOf(int rm)
BigDecimalのレガシー整数丸めモード定数に対応するRoundingModeオブジェクトを返します。- パラメータ:
rm- 変換するレガシー整数丸めモード- 戻り値:
- 指定された整数に対応する
RoundingMode。 - 例外:
IllegalArgumentException- 整数が範囲外にある場合
-
-