数値型

少数点以下の桁数の設定で不安だったので調べました。

数値型のデータ型として
固定少数点数としてNUMBER型
浮動小数点数としてBINARY_FLOAT型(単精度浮動小数点値)、
BINARY_DOUBLE型(倍精度小数点値)があります。

固定少数点数、浮動小数点数をWikiで調べると

固定少数点数

コンピュータにおける実数の近似値の表現方式。
固定小数点数では整数部分に用いるビット数と小数部分に用いるビット数を
あらかじめ固定して表現する。

浮動小数点数

コンピュータにおける実数の近似値の表現方式。小数点の位置が可変である。

と書かれていましたが、よくわかりません。
もう少し分かりやすく説明すると
固定少数点数は浮動小数点数に比べて表現できる値の範囲ははるかに狭いが、
情報落ちが起こらないことや高速に演算できることが利点で
浮動小数点数は誤差が発生しやすいが、大きな値や、逆に小さな値を表現できるかな。

今回は整数部9桁少数点3桁までなので固定少数点数のNUMBER型を使用しました。

書式はNUMBER(p,s)となります。
p:小数点以下も含んだ数値全体の桁数で最大38桁
s:小数点以下の桁数、省略した場合は0となります。有効範囲は-84~127です。


上記書式を考慮して
NUMBER(12,3)と設定しました。

少数点以下桁数の精度を超える値をセットすると丸められます。
NUMBER(12,3)に123.45678をセットすると123.457となります。

また、少数点以下の桁数にマイナスをセットした場合
NUMBER(12,-2)に1234567をセットすると1234600となります。


0 件のコメント:

コメントを投稿