您好,登錄后才能下訂單哦!
MySQL中decimal如何使用,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
decimal介紹
在設(shè)計數(shù)據(jù)庫時,如果你要存儲價格之類帶小數(shù)點的數(shù)據(jù),們一般比如價格,我會用decimal類型,不會考慮float,double,因為他們?nèi)菀桩a(chǎn)生誤差,numeric和decimal同義,numeric將自動轉(zhuǎn)成decimal。
ps: 至于為什么會產(chǎn)生誤差,請看我的另外一篇文章: php中浮點數(shù)計算問題。
decimal用法
DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。
在MySQL 5.1中,參量的取值范圍如下:
·M是數(shù)字的最大數(shù)(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M 的默認值是10。
·D是小數(shù)點右側(cè)數(shù)字的數(shù)目(標(biāo)度)。其范圍是0~30,但不得超過M。
說明:float占4個字節(jié),double占8個字節(jié),decimail(M,D)占M+2個字節(jié)。
如DECIMAL(5,2) 的最大值為9999.99,因為有7 個字節(jié)可用。
首先,對于精度比較高的東西,比如money,我會用decimal類型,不會考慮float,double,因為他們?nèi)菀桩a(chǎn)生誤差,numeric和decimal同義,numeric將自動轉(zhuǎn)成decimal。
DECIMAL從MySQL 5.1引入,列的聲明語法是DECIMAL(M,D)。在MySQL 5.1中,參量的取值范圍如下:
·M是數(shù)字的最大數(shù)(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M 的默認值是10。
·D是小數(shù)點右側(cè)數(shù)字的數(shù)目(標(biāo)度)。其范圍是0~30,但不得超過M。
說明:float占4個字節(jié),double占8個字節(jié),decimail(M,D)占M+2個字節(jié)。
如DECIMAL(5,2) 的最大值為9 9 9 9 . 9 9,因為有7 個字節(jié)可用。
M 與D 對DECIMAL(M, D) 取值范圍的影響。
類型說明取值范圍(MySQL < 3.23)取值范圍(MySQL >= 3.23)
MySQL < 3.23 MySQL >=3.23
DECIMAL(4, 1) -9.9 到 99.9 -999.9 到 9999.9
DECIMAL(5,1) -99.9 到 999.9 -9999.9 到 99999.9
DECIMAL(6,1) -999.9 到 9999.9 -99999.9 到 999999.9
DECIMAL(6,2) -99.99 到 999.99 -9999.99 到 99999.99
DECIMAL(6,3) -9.999 到 99.999 -999.999 到 9999.999
# 在MySQL 3.23 及以后的版本中,DECIMAL(M, D) 的取值范圍等于早期版本中的DECIMAL(M + 2, D) 的取值范圍。
結(jié)論
1. 當(dāng)數(shù)值在其取值范圍之內(nèi),小數(shù)位多了,則小數(shù)會四舍五入。
2. 若數(shù)值在其取值范圍之外,則用最大(小)值對其填充。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。
億速云公眾號
手機網(wǎng)站二維碼
Copyright ? Yisu Cloud Ltd. All Rights Reserved. 2018 版權(quán)所有
廣州億速云計算有限公司粵ICP備17096448號-1 粵公網(wǎng)安備 44010402001142號增值電信業(yè)務(wù)經(jīng)營許可證編號:B1-20181529