ある数値型データを他の数値型データに変換する場合、丸め誤差が発生する場合があります。
次の表で、許容される数値型の変換と、特定の数値型の変換を行った場合に発生する可能性がある誤差を示します。この表では、以下のコードが使用されます。
| ターゲット型 | 小桁整数 (SMALL INT) 型 | 整数 (INTEGER) 型 | 8 バイト整数 (INT8) 型 | 小桁実数 (SMALL FLOAT) 型 | 実数 (FLOAT) 型 | 10 進数 (DECIMAL) 型 |
|---|---|---|---|---|---|---|
| 小桁整数 (SMALLINT) 型 | OK | OK | OK | OK | OK | OK |
| 整数 (INTEGER) 型 | E | OK | OK | E | OK | P |
| 8 バイト整数 (INT8) 型 | E | E | OK | D | E | P |
| 小桁実数 (SMALLFLOAT) 型 | E | E | E | OK | OK | P |
| 実数 (FLOAT) 型 | E | E | E | D | OK | P |
| 10 進数 (DECIMAL) 型 | E | E | E | D | D | P |
例えば、実数 (FLOAT) 型値を DECIMAL(4,2) 型に変換する場合、それを 10 進数 (DECIMAL) 型として格納する前に、浮動小数点数を丸めます。
この変換では、10 進数 (DECIMAL) 型列に割り当てられる有効数字によっては、誤差が発生する場合があります。