mysql數(shù)據(jù)庫decimal類型與decimal長度用法詳解
項目涉及到金錢的存儲,數(shù)據(jù)庫對應字段類型建議使用decimal,這是今天學到的。
下面我們來一起學習一下
1.三者的區(qū)別介紹
float:浮點型,含字節(jié)數(shù)為4,32bit,數(shù)值范圍為-3.4E38~3.4E38(7個有效位)
double:雙精度實型,含字節(jié)數(shù)為8,64bit數(shù)值范圍-1.7E308~1.7E308(15個有效位)
decimal:數(shù)字型,128bit,不存在精度損失,常用于銀行帳目計算。(28個有效位)
2.按存儲的范圍進行排序
float(real) double decimal(numeric)
3.decimal的詳細介紹
decimal(a,b)
參數(shù)說明:
a指定指定小數(shù)點左邊和右邊可以存儲的十進制數(shù)字的最大個數(shù),最大精度38。 b指定小數(shù)點右邊可以存儲的十進制數(shù)字的最大個數(shù)。小數(shù)位數(shù)必須是從
0 到 a之間的值。默認小數(shù)位數(shù)是 0。
備注
DECIMAL數(shù)據(jù)類型用于要求非常高的精確度的計算中,這些類型允許指定數(shù)值的精確度和計數(shù)方法作為選擇參數(shù)。精確度在這里是指為這個值保存的有效數(shù)字的總個數(shù),而計數(shù)方法表示小數(shù)點后數(shù)字的個數(shù)。例如,語句DECIMAL
(5,2)規(guī)定了存儲的值將不會超過5位數(shù)字,開且小數(shù)點后面有2位數(shù)字。
實例
float f = 345.98756f;--結(jié)果顯示為345.9876,只顯示7個有效位,對最后一位數(shù)四舍五入。 double d=345.975423578631442d;--結(jié)果顯示為345.975423578631,只顯示15個有效位,對最后一位四舍五入。 --注:float和double的相乘操作,數(shù)字溢出不會報錯,會有精度的損失。 decimal dd=345.545454879.....--可以支持28位,對最后一位四舍五入。 --:當對decimal類型進行操作時,數(shù)值會因溢出而報錯。
總結(jié)
數(shù)值存儲范圍越小的精度越高,存儲數(shù)值范圍越大,精度就越不準確,如果存儲正常金額的情況下,使用money,好處在于可以存儲不指定的小數(shù)點位數(shù)的數(shù)值,比較真實。如果對于既要求精度,又固定小數(shù)點位數(shù)的數(shù)值存儲,采用decimal(numeric),優(yōu)點在于可以自定義小數(shù)點位數(shù),精度高。如特殊情況,如數(shù)值范圍巨大只能用float(real)類型了,此類型一般不提倡使用。
到此這篇關于mysql數(shù)據(jù)庫decimal類型與decimal長度用法的文章就介紹到這了,更多相關mysql decimal與decimal長度用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Windows平臺配置5.7版本+MySQL數(shù)據(jù)庫服務
這篇文章主要介紹了Windows平臺配置5.7版本+MySQL數(shù)據(jù)庫服務的方法,包括初始化root用戶密碼password的過程以及兩個常見問題的解決方法,需要的朋友參考下吧2017-06-06