本文導讀:decimal(numeric)、double、float(real) 都是SQL中的浮點類型的數據類型。FLOAT數值類型用於表示單精度浮點數值,DOUBLE數值類型用於表示雙精度浮點數值,而decimal用法更靈活code
decimal(a,b)排序
DECIMAL數據類型用於要求很是高的精確度的計算中,這些類型容許指定數值的精確度和計數方法做爲選擇參數。精確度在這裏是指爲這個值保存的有效數字的總個數,而計數方法表示小數點後數字的個數。例如,語句DECIMAL (5,2)規定了存儲的值將不會超過5位數字,開且小數點後面有2位數字。ci
##實例it
SQL 代碼數據類型
float f = 345.98756f;--結果顯示爲345.9876,只顯示7個有效位,對最後一位數四捨五入。 double d=345.975423578631442d; --結果顯示爲345.975423578631,只顯示15個有效位,對最後一位四捨五入。 --float和double的相乘操做,數字溢出不會報錯,會有精度的損失。 decimal dd=345.545454879..--能夠支持28位,對最後一位四捨五入。 --當對decimal類型進行操做時,數值會因溢出而報錯。
##4、總結 數值存儲範圍越小的精度越高,存儲數值範圍越大,精度就越不許確,若是存儲正常金額的狀況下,使用money,好處在於能夠存儲不指定的小數點位數的數值,比較真實。若是對於既要求精度,又固定小數點位數的數值存儲,採用decimal(numeric),優勢在於能夠自定義小數點位數,精度高。如特殊狀況,如數值範圍巨大隻能用float(real)類型了,此類型通常不提倡使用。float