mysql decimal
首先,對于精度比較高的東西,比如money,我會用decimal類型,不會考慮float,double,因?yàn)樗麄內(nèi)菀桩a(chǎn)生誤差,
DECIMAL列的聲明語法是DECIMAL(M,D)。在MySQL 5.1中,參量的取值范圍如下:
· M是數(shù)字的最大數(shù)(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254)。
· D是小數(shù)點(diǎn)右側(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,因?yàn)橛? 個字節(jié)可用。
譯者注:
M 與D 對DECIMAL(M, D) 取值范圍的影響
類型說明 取值范圍(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) 的取值范圍。
還有一種數(shù)據(jù)類型也是比較棒的: 那就是LongBlob,這種數(shù)據(jù)類型可以直接把圖像文件存到數(shù)據(jù)庫中!
筆者,最近在研究mysql的decimal數(shù)據(jù)類型,現(xiàn)把數(shù)據(jù)實(shí)驗(yàn)結(jié)果公布如下
數(shù)據(jù)庫版本:Server version: 5.0.45 Source distribution
1、創(chuàng)建表結(jié)構(gòu)
代碼如下
create table ta (a float,b decimal(10,5));
2、插入數(shù)據(jù)
代碼如下
insert into ta (a,b) values(1,12345.123423);
實(shí)際插入的b列數(shù)據(jù)為:12345.12342
代碼如下
insert into ta (a,b) values(1,123456.1234);
實(shí)際插入的b列數(shù)據(jù)為:99999.99999
結(jié)論:decimal數(shù)據(jù)類型,
1、當(dāng)插入的整數(shù)部分的值超過了其表示范圍后就直接忽略了小數(shù)部分的值,并以最大值填充。
2、當(dāng)整數(shù)部分合法,小數(shù)部分多余的位數(shù),直接截?cái)唷?/p> bitsCN.com
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com