DECIMAL データ型 DECIMAL data type

DECIMALにより精度と目盛りを指定して正確な数を扱えます。 この型では精度(小数点の左右の桁数の合計)と目盛り(小数点以下の桁数)を指定できます。 記憶装置にて必要とされる領域のサイズは、精度により決まります。

構文 { DECIMAL | DEC } [(精度 [, 目盛り ])]

精度は1から31の数をとります。目盛りは精度以下の数をとります。

目盛りが指定されなかった場合の既定値は0となります。精度が指定されなかった場合の既定値は5となります。

DECIMALに代入することが可能なのは、小数部以外が失われない範囲の数です。 DECIMALの値から小数部を無くする場合、は切捨てを行います。

例えば、-- この型変換で失われるのは小数部のみです。 values cast (1.798765 AS decimal(5,2)); 1 -------- 1.79 -- この型変換はうまく行きません。 values cast (1798765 AS decimal(5,2)); 1 -------- ERROR 22003: The resulting value is outside the range for the data type DECIMAL/NUMERIC(5,2).

他のデータ型が式にて混在して利用されていた場合、式の結果となる型はで書かれたとおりに決まります。

も参照してください。

二つのDECIMALの値が式にて用いられていた場合、式の結果となる型はに記述された規則に従って決まります。

対応するコンパイル時のJavaの型

java.math.BigDecimal

JDBC のメタデータ型 (java.sql.Types)

DECIMAL

VALUES 123.456 VALUES 0.001

BIGINTには大きすぎる整数の定数は、DECIMALの定数となります。