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, 2013, Oracle and/or its affiliates. All rights reserved.