スキーマは SYSIBM です。
QUANTIZE 関数は、値 (丸め以外) において等しく、numeric-expression と符号が等しく、exp-expression の指数と等しい指数を持つ、10 進浮動小数点値を戻します。 桁数 (16 または 34) は、numeric-expression の桁数と同じです。
結果の係数は、numeric-expression の係数から派生します。必要な場合 (指数が増加している場合) には、丸められるか、10 の累乗で乗算されるか (指数が減少している場合)、または変更されないままです (指数が既に exp-expression の指数と等しい場合)。
CURRENT DECFLOAT ROUNDING MODE 特殊レジスターは、丸めモードを決定します。
10 進浮動小数点データ・タイプの他の算術演算とは異なり、量子化演算の後に係数の長さが exp-expression によって指定された精度より大きくなる場合、結果は NaN になり、警告が戻されます (SQLSTATE 0168D)。 これにより、警告条件がない場合には、QUANTIZE の結果の指数は常に exp-expression の指数と等しくなります。
両方の引数が DECFLOAT(16) である場合、関数の結果は DECFLOAT(16) 値になります。そうでない場合には、関数の結果は DECFLOAT(34) 値になります。結果は NULL 値になることがあります。 いずれかの引数が NULL 値である場合、結果は NULL 値になります。
例:
QUANTIZE(2.17, DECFLOAT(0.001)) = 2.170
QUANTIZE(2.17, DECFLOAT(0.01)) = 2.17
QUANTIZE(2.17, DECFLOAT(0.1)) = 2.2
QUANTIZE(2.17, DECFLOAT('1E+0')) = 2
QUANTIZE(2.17, DECFLOAT('1E+1')) = 0E+1
QUANTIZE(2, DECFLOAT(INFINITY)) = NaN -- warning
QUANTIZE(0, DECFLOAT('1E+5')) = 0E+5
QUANTIZE(217, DECFLOAT('1E-1')) = 217.0
QUANTIZE(217, DECFLOAT('1E+0')) = 217
QUANTIZE(217, DECFLOAT('1E+1')) = 2.2E+2
QUANTIZE(217, DECFLOAT('1E+2')) = 2E+2
CHAR(QUANTIZE(-0.1, DECFLOAT(1))) = -0