public enum RoundingMode extends Enum<RoundingMode>
各丸めモードの記述には、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など)の丸めモード定数の整数ベースの列挙を置き換えるために使用されます。
BigDecimal, MathContext| 列挙型定数 | 説明 |
|---|---|
CEILING |
正の無限大に近づくように丸めるモードです。
|
DOWN |
0に近づくように丸めるモードです。
|
FLOOR |
負の無限大に近づくように丸めるモードです。
|
HALF_DOWN |
「もっとも近い数字」に丸める丸めモードです(両隣りの数字が等距離の場合は切り捨てます)。
|
HALF_EVEN |
「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は偶数側に丸めます)。
|
HALF_UP |
「もっとも近い数字」に丸める丸めモードです(ただし、両隣りの数字が等距離の場合は切り上げます)。
|
UNNECESSARY |
要求される演算の結果が正確であり、丸めが必要でないことを表す丸めモードです。
|
UP |
0から離れるように丸めるモードです。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
static RoundingMode |
valueOf(int rm) |
BigDecimalのレガシー整数丸めモード定数に対応するRoundingModeオブジェクトを返します。 |
static RoundingMode |
valueOf(String name) |
指定された名前を持つ、この型の列挙型定数を返します。
|
static RoundingMode[] |
values() |
この列挙型の定数を含む配列を、宣言されている順序で返します。
|
public static final RoundingMode 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 |
public static final RoundingMode 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 |
public static final RoundingMode CEILING
RoundingMode.UPのように動作し、負の場合はRoundingMode.DOWNのように動作します。 この丸めモードは、計算された値を減らしません。
例:
| 入力される数値 | 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 |
public static final RoundingMode FLOOR
RoundingMode.DOWNのように動作し、負の場合はRoundingMode.UPのように動作します。 この丸めモードは、計算された値を増やしません。
例:
| 入力される数値 | 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 |
public static final RoundingMode HALF_UP
RoundingMode.UPのように、それ以外の場合はRoundingMode.DOWNのように動作します。 これは我々の大半が小学校で習った丸めモードのことです。
例:
| 入力される数値 | 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 |
public static final RoundingMode HALF_DOWN
RoundingMode.UPのように、それ以外の場合はRoundingMode.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 |
public static final RoundingMode HALF_EVEN
RoundingMode.HALF_UPのように、偶数の場合はRoundingMode.HALF_DOWNのように動作します。 この丸めモードは、連続する計算で繰返し適用される場合に累積エラーを統計的に最小限にします。 これは「銀行方式の丸め」としても知られ、主に米国で使用されます。 この丸めモードは、Javaのfloatおよびdouble算術演算で使用される丸め方針と同様です。
例:
| 入力される数値 | 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 |
public static final RoundingMode UNNECESSARY
ArithmeticExceptionがスローされます。
例:
| 入力される数値 | 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をスロー |
public static RoundingMode[] values()
for (RoundingMode c : RoundingMode.values()) System.out.println(c);
public static RoundingMode valueOf(String name)
name - 返される列挙型定数の名前。IllegalArgumentException - 指定された名前を持つ定数をこの列挙型が持っていない場合NullPointerException - 引数がnullの場合public static RoundingMode valueOf(int rm)
BigDecimalのレガシー整数丸めモード定数に対応するRoundingModeオブジェクトを返します。rm - 変換するレガシー整数丸めモードRoundingMode。IllegalArgumentException - 整数が範囲外にある場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。