数値

数値データ・タイプは、整数、10 進数、浮動小数点数、および 10 進浮動小数点数です。

数値データ・タイプは、以下のように分類されます。
  • 厳密な数: 整数および 10 進数
  • 10 進浮動小数点数
  • 近似数: 浮動小数点数

整数には、短精度整数、長精度整数、および 64 ビット整数 (big integer) が含まれます。 整数の数値は、整数の厳密な表記です。 10 進数は、固定精度と位取りを持つ、数値の厳密な表記です。 整数および 10 進数は、厳密な数値タイプと考えられます。

10 進浮動小数点数は、16 または 34 の精度を持つことができます。 10 進浮動小数点数は、実数の厳密な表記と実数の近似値の両方をサポートするため、厳密な数値タイプと近似値タイプのいずれでもないと考えられます。

浮動小数点数には、単精度および倍精度があります。 浮動小数点数は、実数の近似値であり、近似値タイプと考えられます。

すべての数値には、符号精度、および 位取りがあります。 10 進浮動小数点数以外のすべての数値の場合、列値がゼロなら、符号は正になります。 10 進浮動小数点数には、負および正のゼロが含まれます。 10 進浮動小数点数には、数値とさまざまな指数の付いた同じ数値に対してそれぞれ別個の値があります (例えば、0.0、0.00、0.0E5、1.0、1.00、1.0000)。 精度は、符号を除いた 10 進数の桁数の合計です。 位取りは、小数点以下の小数桁数の合計です。 小数点がない場合、位取りはゼロになります。

CREATE TABLE ステートメントの説明にあるデータ・タイプのセクションも参照してください。

.

短精度整数 (SMALLINT)

短精度整数 は、精度が 5 桁の 2 バイト整数です。 短精度整数の範囲は -32 768 から 32 767 です。

長精度整数 (INTEGER)

長精度整数 は、精度が 10 桁の 4 バイトの整数です。 長精度整数の範囲は -2 147 483 648 から +2 147 483 647 です。

64 ビット整数 (BIGINT)

64 ビット整数 は、精度が 19 桁の 8 バイトの整数です。 64 ビット整数の範囲は -9 223 372 036 854 775 808 から +9 223 372 036 854 775 807 です。

10 進数 (DECIMAL または NUMERIC)

10 進数値 は、暗黙的な小数点を持つパック 10 進数です。 小数点の位置は、その数値の精度と位取りによって決定されます。 数値の小数部分の桁数である位取りが、 負になったり精度数よりも大きくなったりすることはありません。 最大精度は 31 桁です。

10 進数の列の値は、すべて同じ精度と位取りの値です。 10 進数の変数または 10 進数の列の数値の範囲は、 -n から +n です (絶対値 n は、 適切な精度および 10 進数で表現できる最も大きな数値)。 最大範囲は -1031+1 から 1031-1 です。

単精度浮動小数点 (REAL)

単精度浮動小数点 数は、実数の 32 ビット近似値です。 この数は、ゼロにするか、または -3.4028234663852886e+38 から -1.1754943508222875e-38 まで、または 1.1754943508222875e-38 から 3.4028234663852886e+38 までの範囲にすることができます。

倍精度浮動小数点 (DOUBLE または FLOAT)

倍精度浮動小数点 数は、実数の 64 ビットの近似値です。 この数は、ゼロにするか、または -1.7976931348623158e+308 から -2.2250738585072014e-308 まで、または 2.2250738585072014e-308 から 1.7976931348623158e+308 までの範囲にすることができます。

10 進浮動小数点 (DECFLOAT)

10 進浮動小数点 値は、小数点の付いた IEEE 754r の数値です。 小数点の位置は、各 10 進浮動小数点値に格納されます。 最大精度は 34 桁です。 10 進浮動小数点数の範囲は、16 桁か 34 桁の精度のどちらかであり、それぞれ 10-383 から 10+384 または 10-6143 から 10+6144 の指数範囲です。 DECFLOAT 値の最小指数 Emin は、DECFLOAT(16) の場合 -383、DECFLOAT(34) の場合 -6143 です。 DECFLOAT 値の最大指数 Emax は、DECFLOAT(16) の場合 384、DECFLOAT(34) の場合 6144 です。

有限数に加えて、10 進浮動小数点数は、以下のいずれかの名前の 10 進浮動小数点特殊値を表すことができます。
  • 無限大 - 絶対値が無限に大きい数を表す値
  • 静止 NaN - 未定義の結果を表す値で、無効数値警告を引き起こさない値
  • シグナリング NaN - 未定義の結果を表す値で、数値演算で使用される場合に無効数値警告を引き起こす値
数値がこれらの特殊値のいずれかであるとき、その数値の係数および指数は未定義です。 正の無限大と負の無限大があるので、無限大値の符号は重要です。 NaN 値の符号は、算術演算では意味がありません。

非正規数およびアンダーフロー

調整された指数が Emin より小さいゼロ以外の数値は、非正規数と呼ばれています。 これらの非正規数は、すべての演算のオペランドとして受け入れられ、どの演算の結果としても生じる可能性があります。

非正規の結果では、指数の最小値は Emin - (精度 -1) となり、Etiny と呼ばれます。ここで、精度は処理精度です。 必要な場合には、指数が Etiny より小さくならないように結果が丸められます。 丸め中に結果が正確でなくなる場合、アンダーフロー警告が戻されます。 正常以下の結果は、常にアンダーフロー warningを返すとは限りません。

計算中に数値がアンダーフローしてゼロになるとき、指数は Etiny になります。 指数の最大値は、影響を受けません。

非正規数の指数の最大値は、結果が非正規数にならない演算中に生じる指数の最小値と同じです。 これは、小数桁の係数の長さが精度と等しいときに起こります。