Sqlのdecimal、float、doubleタイプの違い

2772 ワード

三者の違い紹介
 
float:浮動小数点型で、バイト数は4、32 bitで、数値範囲は-3.4 E 38~3.4 E 38(7つの有効ビット)です。
ダブル精度実数型、バイト数8、64 bit数値範囲-1.7E 308~1.7E 308(15有効ビット)
decimal:数字型、128 bitは精度損失がなく、銀行会計でよく計算されます。(28ビット有効)
 
保存範囲で並べ替えます。
 
float(real)
ドビー
decimal(numeric)
 
decimalの詳細紹介
 
decimal(a,b) 
パラメータの説明
a指定小数点左と右に格納できる十進数の最大個数を指定し、最大精度38。b小数点右に格納できる10進数の最大個数を指定します。小数点以下の桁数は0からaまでの値でなければなりません。デフォルトの小数点以下は0です。
 
コメント
DECIMALデータタイプは非常に高い精度が要求される計算に用いられ、これらのタイプは選択パラメータとして数値の精度とカウント方法を指定できる。精度とは、ここではこの値のために保存されている有効な数の合計を指し、カウント方法は小数点以下の数を表します。例えば、ステートメントDECIMAL(5,2)は、格納された値が5桁を超えないことを規定しています。
 
実例
 
SQLコード  
コピー

float f = 345.98756f;--     345.9876,   7    ,          。

double d=345.975423578631442d;--     345.975423578631,   15    ,         。

-- :float double     ,        ,       。

decimal dd=345.545454879.....--    28 ,         。

--:  decimal       ,         。
 
締め括りをつける
数値格納範囲が小さいほど精度が高く、格納範囲が大きいほど精度が悪くなります。正常金額を格納する場合、moneyを使うと、指定されていない小数点以下の桁数の数値を記憶できるというメリットがあります。精度が要求されている場合は、小数点以下の桁数を固定した数値を格納し、decimal(numeric)を採用すると、小数点以下の桁数をカスタマイズでき、精度が高いという利点があります。特殊な場合は、数値の範囲が大きい場合はfloatタイプしか使えません。