モジュール java.base
パッケージ java.math

列挙型クラスRoundingMode

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数を作成し、適切な設定(precision1roundingModeが当該の丸めモードに設定)を持つ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_UPBigDecimal.ROUND_DOWNなど)の丸めモード定数の整数ベースの列挙を置き換えるために使用されます。

APIのノート:
このクラスで宣言された5つの丸めモードは、「浮動小数点演算のIEEE規格」で定義されている丸め方向属性に対応しています。 存在する場合、この対応関係は特定の定数のドキュメントに記載されています。
Java言語仕様を参照してください:
「15.4 浮動小数点式」
導入されたバージョン:
1.5
関連項目: