JavaTM Platform
Standard Ed. 6

java.math
列挙型 RoundingMode

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

導入されたバージョン:
1.5
関連項目:
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()
          この列挙型の定数を含む配列を宣言されている順序で返します。
 
クラス java.lang.Enum から継承されたメソッド
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
 
クラス java.lang.Object から継承されたメソッド
getClass, notify, notifyAll, wait, wait, wait
 

列挙型定数の詳細

UP

public static final RoundingMode UP
0 から離れるように丸めるモードです。破棄される 0 以外の小数部に先行する桁を常に増やします。この丸めモードは、計算された値の絶対値を減らしません。

例:

入力される数値 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 による丸めで
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 による丸めで
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 による丸めで
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 による丸めで
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 による丸めで
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 による丸めで
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 による丸めで
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 - 整数が範囲外にある場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。