ROUND
ROUND 関数は、expression–1 を、小数点の右側または左側の特定の桁で丸めた値を返します。
- expression–1
- 任意の組み込み数値、文字ストリング、 またはグラフィック・ストリングのデータ・タイプの値を戻す式。 ストリング引数は、関数を評価する前に倍精度の浮動小数点に変換されます。 ストリングを倍精度の浮動小数点に変換する方法については、DOUBLE_PRECISION または DOUBLEを参照してください。
- expression-1 が 10 進浮動小数点データ・タイプの場合、DECFLOAT ROUNDING MODE は使用されません。ROUND の丸め動作は、ROUND_HALF_UP の値に対応します。別の丸め動作が必要な場合は、QUANTIZE 関数を使用します。
- expression–2
- 組み込みデータ・タイプ BIGINT、INTEGER、または SMALLINT の値を戻す式。
expression–2 が正の場合、expression–1 は小数点の右側の expression–2 桁目で丸められます。
expression–2 が負の場合、expression–1 は小数点の左側の 1 + (expression–2 の絶対値) 桁に相当する桁で丸められます。 expression–2 の絶対値が小数点の左側の桁数より大きい場合、結果は 0 になります。(例えば、ROUND(748.58,-4) は 0 を返します。)
expression–1 が正で、その桁の値が 5 である場合は、次に大きい正の数に切り上げられます。 expression–1 が負で、その桁の値が 5 である場合は、次に低い負の数に切り下げられます。
結果のデータ・タイプおよび長さ属性は、最初の引数のデータ・タイプ および長さ属性と同じです。ただし、expression–1 が DECIMAL または NUMERIC であり、 精度が最大精度 (mp) より小さい場合は、精度は 1 だけ増加します。 例えば、データ・タイプが DECIMAL(5,2) の引数の場合、結果は DECIMAL(6,2) になります。 データ・タイプが DECIMAL(63,2) の引数の場合、結果は DECIMAL(63,2) になります。
どちらかの引数が NULL になる可能性がある場合は、結果も NULL になる可能性があります。 引数のどちらかが NULL である場合は、結果は NULL 値になります。
例
- 数値 873.726 を、小数点から 2、1、0、-1、-2、-3、-4 の位置で丸めます。
それぞれ以下の値が戻されます。SELECT ROUND(873.726, 2), ROUND(873.726, 1), ROUND(873.726, 0), ROUND(873.726, -1), ROUND(873.726, -2), ROUND(873.726, -3), ROUND(873.726, -4) FROM SYSIBM.SYSDUMMY1
0873.730 0873.700 0874.000 0870.000 0900.000 1000.000 0000.000
- 正負両方の数値を計算します。
SELECT ROUND( 3.5, 0), ROUND( 3.1, 0), ROUND(-3.1, 0), ROUND(-3.5, 0) FROM SYSIBM.SYSDUMMY1
それぞれ以下の値が戻されます。
04.0 03.0 -03.0 -04.0