java.lang.Object
java.lang.Enum<RoundingMode>
java.math.RoundingMode
- すべての実装されたインタフェース:
- Serializable,- Comparable<RoundingMode>,- Constable
public enum RoundingMode extends Enum<RoundingMode>
精度を破棄できる数値演算に「端数処理ポリシー」を指定します。 各丸めモードは、丸められた結果の返された最下位の桁の計算方法を指定します。 正確な数値結果を表現するのに必要な桁数よりも少ない桁数しかない場合、破棄された桁は、その桁の数値における役割にかかわらず、破棄される小数部と呼ばれます。 つまり、破棄される小数部は数値と見なされ、1よりも大きな絶対値を持つことができます。 
 
 
 
より一般的には、丸めポリシーは実数から表現可能な値のサブセットへのマッピングを定義します。 BigDecimalの場合、表現可能な値は計算で使用されるprecisionの機能です。 数学結果がBigDecimalの指数範囲内である場合、数学的結果は結果の精度で正確に表現可能であるか、または2つの隣接する表現可能な値の間に収まります。 2つの表現可能な値の間に落ちる場合、丸めポリシーはそれらの2つの括弧値のうちどれが結果であるかを決定します。 範囲内実数では、指定された表現可能な値のセットに対して、端数処理ポリシーによって実数行の連続セグメントが単一の表現可能な値にマップされます。この場合、実数値は表現可能な値と数値的に等しくなります。 
 
各丸めモードの記述には、2桁の異なる10進数値を、当該の丸めモードで1桁の10進数値に丸める方法を示す表があります。 表の結果列は、指定された値を持つBigDecimal数を作成し、適切な設定(precisionが1、roundingModeが当該の丸めモードに設定)を持つMathContextオブジェクトを形成して、適切なMathContextを使用してこの数値に対しroundを呼び出すことで取得できます。 次に、すべての丸めモードの丸め演算の結果を示すサマリー表を示します。 
| 入力される数値 | 特定の丸めモードで入力を1桁に丸めた結果 | |||||||
|---|---|---|---|---|---|---|---|---|
| UP | DOWN | CEILING | FLOOR | HALF_UP | HALF_DOWN | HALF_EVEN | UNNECESSARY | |
| 5.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など)の丸めモード定数の整数ベースの列挙を置き換えるために使用されます。
- APIのノート:
- このクラスで宣言された5つの丸めモードは、「浮動小数点演算のIEEE規格」で定義されている丸め方向属性に対応しています。 存在する場合、この対応関係は特定の定数のドキュメントに記載されています。
- Java言語仕様を参照してください:
- 
「15.4 浮動小数点式」
- 導入されたバージョン:
- 1.5
- 関連項目:
- 
ネストされたクラスのサマリークラスjava.lang.Enumで宣言されたネストされたクラス/インタフェースEnum.EnumDesc<E extends Enum<E>>
- 
列挙型定数のサマリー列挙型定数列挙型定数説明正の無限大に近づくように丸めるモードです。0に近づくように丸めるモードです。負の無限大に近づくように丸めるモードです。「もっとも近い数字」に丸める丸めモードです(両隣りの数字が等距離の場合は切り捨てます)。「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は偶数側に丸めます)。「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は切り上げます)。要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。0から離れるように丸めるモードです。
- 
メソッドのサマリー修飾子と型メソッド説明static RoundingModevalueOf(int rm) BigDecimalのレガシー整数丸めモード定数に対応するRoundingModeオブジェクトを返します。static RoundingMode指定された名前を持つこのクラスのenum定数を返します。static RoundingMode[]values()この列挙クラスの定数を含む配列を宣言されている順序で 返します。
- 
列挙型定数の詳細- 
UPpublic static final RoundingMode UP0から離れるように丸めるモードです。 破棄される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 
- 
DOWNpublic static final RoundingMode DOWN0に近づくように丸めるモードです。 破棄される小数部に先行する桁を増分しません(つまり切り捨て)。 この丸めモードは、計算された値の絶対値を増やしません。- APIのノート:
- この丸めモードは、floatおよびdouble演算子に使用される丸めポリシーに類似しており、整数値(JLS 15.4)に変換されます。 このモードは、IEEE 754の丸め方向属性roundTowardZeroに対応します。例: 丸めモード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 
 
- 
CEILINGpublic static final RoundingMode CEILING正の無限大に近づくように丸めるモードです。 結果が正の場合はRoundingMode.UPのように動作し、負の場合はRoundingMode.DOWNのように動作します。 この丸めモードは、計算された値を減らしません。 このモードは、IEEE 754の丸め方向属性roundTowardPositiveに対応します。例: 丸めモード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 
- 
FLOORpublic static final RoundingMode FLOOR負の無限大に近づくように丸めるモードです。 結果が正の場合はRoundingMode.DOWNのように動作し、負の場合はRoundingMode.UPのように動作します。 この丸めモードは、計算された値を増やしません。 このモードは、IEEE 754の丸め方向属性roundTowardNegativeに対応します。例: 丸めモード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_UPpublic static final RoundingMode HALF_UP「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は切り上げます)。 破棄される小数部が0.5以上の場合はRoundingMode.UPのように、それ以外の場合はRoundingMode.DOWNのように動作します。 これは我々の大半が小学校で習った丸めモードのことです。 このモードは、IEEE 754の丸め方向属性roundTiesToAwayに対応します。例: 丸めモード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_DOWNpublic 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_EVENpublic static final RoundingMode HALF_EVEN「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は偶数側に丸めます)。 破棄する小数部の左側の桁が奇数の場合はRoundingMode.HALF_UPのように、偶数の場合はRoundingMode.HALF_DOWNのように動作します。- APIのノート:
- これは、一連の計算で繰り返し適用されたときに累積エラーを統計的に最小化する丸めモードです。 これは「銀行方式の丸め」としても知られ、主に米国で使用されます。 この丸めモードは、Java (JLS 15.4)のほとんどのfloatおよびdouble算術演算子に使用される丸めポリシーに似ています。 このモードは、IEEE 754の丸め方向属性roundTiesToEvenに対応します。例: 丸めモード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 
 
- 
UNNECESSARYpublic 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をスロー
 
- 
- 
メソッドの詳細- 
valuespublic static RoundingMode[] values()この列挙クラスの定数を含む配列を宣言されている順序で 返します。- 戻り値:
- この列挙クラスの定数を宣言されている順序で含む配列
 
- 
valueOfpublic static RoundingMode valueOf(String name) 指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子と正確に一致する必要があります。 (不適切な空白文字は許可されません。)- パラメータ:
- name- 返される列挙型定数の名前。
- 戻り値:
- 指定された名前を持つ列挙型定数
- 例外:
- IllegalArgumentException- この列挙型クラスに指定された名前の定数がない場合
- NullPointerException- 引数がnullの場合
 
- 
valueOfpublic static RoundingMode valueOf(int rm) BigDecimalのレガシー整数丸めモード定数に対応するRoundingModeオブジェクトを返します。- パラメータ:
- rm- 変換するレガシー整数丸めモード
- 戻り値:
- 指定された整数に対応するRoundingMode。
- 例外:
- IllegalArgumentException- 整数が範囲外にある場合
 
 
-