DB2 10.5 for Linux, UNIX, and Windows

decflt_rounding - 10 進浮動小数点丸め構成パラメーター

このパラメーターは、10 進数浮動小数点 (DECFLOAT) 値の丸めモードを指定します。丸めモードは、サーバー、および LOAD コマンド操作における 10 進浮動小数点の操作に影響します。

構成タイプ
データベース
パラメーター・タイプ
構成可能

decflt_rounding の値の変更による影響を参照してください。

デフォルト [範囲]
ROUND_HALF_EVEN [ROUND_CEILING, ROUND_FLOOR, ROUND_HALF_UP, ROUND_DOWN]
DB2® データベース・システムは、IEEE に準拠した 5 つの 10 進浮動小数点丸めモードをサポートしています。丸めモードにより、計算結果が精度を超えたときの、結果の丸め方法が指定されます。 すべての丸めモードの定義は、以下のとおりです。
ROUND_CEILING
正の無限大へ丸めます。廃棄される数字がすべてゼロであるか、または符号が負の場合、結果は未変更のままになります。 それ以外の場合に、結果の係数が 1 だけ増分されます (切り上げ)。
ROUND_FLOOR
負の無限大の方向へ丸めます。廃棄される数字がすべてゼロであるか、または符号が正の場合、結果は未変更のままになります。 それ以外の場合、符号は負になり、結果の係数は 1 だけ増大するはずです。
ROUND_HALF_UP
最も近い数字に丸めます。等距離の場合は、1 だけ切り上げます。廃棄される数字がすぐ左の桁の 0.5 以上の値を表している場合に、結果の係数が 1 だけ増分されます (切り上げ)。 それ以外の場合、値が 0.5 より小さい廃棄される数字は無視されます。
ROUND_HALF_EVEN
最も近い数字に丸めます。等距離の場合は、結果の数字が偶数になるように丸めます。 廃棄される数字がすぐ左の桁の 0.5 より大きい値を表している場合に、結果の係数が 1 だけ増分されます (切り上げ)。 半分より小さい場合、結果の係数は調整されません。つまり、廃棄された数字は無視されます。 それ以外の場合 (正確に半分の場合)、結果の係数の右端の数字が偶数であれば、その係数は変更されませんが、右端の数字が奇数であれば、その桁が偶数になるように 1 だけ増大 (切り上げ) します。この丸めモードは IEEE の 10 進浮動小数点仕様で定められているデフォルトの丸めモードであり、DB2 データベース製品のデフォルトの丸めモードでもあります。
ROUND_DOWN
0 の方向へ丸めます (切り捨て)。廃棄された数字は無視されます。
表 1 に、12.341、12.345、12.349、12.355、および -12.345 をそれぞれ異なる丸めモードで、4 桁に丸めた結果を示します。
表 1. 10 進浮動小数点の丸めモード
丸めモード 12.341 12.345 12.349 12.355 -12.345
ROUND_DOWN 12.34 12.34 12.34 12.35 -12.34
ROUND_HALF_UP 12.34 12.35 12.35 12.36 -12.35
ROUND_HALF_EVEN 12.34 12.34 12.35 12.36 -12.34
ROUND_FLOOR 12.34 12.34 12.34 12.35 -12.35
ROUND_CEILING 12.35 12.35 12.35 12.36 -12.34

decflt_rounding の値の変更による影響

パラメーターの値を変更すると、以下のような影響があります。

  • 以前作成されたマテリアライズ照会表 (MQT) の内容が、新しい丸めモードで作成されるものとは異なる結果になる可能性があります。 この問題を訂正するには、影響を受ける可能性のある MQT をリフレッシュします。
  • トリガーの結果は、新しい丸めモードに影響されることがあります。 丸めモードを変更しても、既に書き込まれたデータには影響しません。
  • 表にデータの挿入を許可した制約が、再評価すると、同じデータを拒否することがあります。 同様に、表にデータの挿入を許可しなかった制約が、再評価すると、同じデータを受け入れることがあります。 このような問題を確認して修正するには、SET INTEGRITY ステートメントを使用します。
  • 計算が decflt_rounding に依存している生成済みの列の値または式ベースのキーを持つ索引の値は、同一の行でも異なる場合があります。 値の相違は、一方の行が decflt_rounding の変更前に挿入され、もう一方の行が変更後に挿入された場合に生じます。 decflt_rounding 構成パラメーターの値を変更した後で、すべての潜在的に影響を受ける式ベースの索引をドロップして再作成します。 影響を受けるかどうか確認できない特定の式ベースの索引がある場合は、索引に間違った値が含まれないようにするため、その索引をドロップして再作成するのが最善です。
  • decflt_rounding の値は、セクションにコンパイルされません。したがって、decflt_rounding 構成パラメーターの値を変更した後に静的 SQL ステートメントを再コンパイルする必要はありません。

この構成パラメーターの値は動的には変更されません。 すべてのアプリケーションがデータベースから切断し、データベースが再始動されて初めて、変更が有効になります。