MySQL DECIMAL 數據類型

數據類型格式DECIMAL(M,D)html

M:是整個數字的最大長度, 取值範圍 [1,65]mysql

D:小數點後面的長度,取值範圍爲[0,30],   而且 D<=Mgit

若是D省略,默認值爲0,若是M省略,默認值爲10。github

數據類型爲DECIMAL的列,使用的是二進制字節存儲。sql

每9個長度,佔用4字節,不足9位長度,則按照以下:spa

剩餘字節 佔用空間(字節)
0 0
1-2 1
3-4 2
5-6 3
7-9 4

例如:code

1: DECIMAL(18,9)  整數部分長度爲9,分數部分長度爲9;因此整數部分佔用4字節,分數部分佔用4字節。server

2:DECIMAL(20,6)  整數部分長度爲14,分數部分長度爲6;整數部分佔用 4+3=7字節,分數部分佔用3字節。htm

DECIMAL列不存儲正負號(+、-)和0前綴。好比, DECIMAL(5,1)插入 +0003.1,則實際存儲爲 3.1;對於負數,「-」符號不會存儲。ci

 

對於與金融相關貨幣存儲, 若是單位爲元,DECIMAL(20,4) , 單位爲分,能夠用 bigint。

 

 

參考文檔: https://dev.mysql.com/doc/refman/5.7/en/precision-math-decimal-characteristics.html

參考源碼:https://github.com/mysql/mysql-server/blob/5.7/strings/decimal.c

相關文章
相關標籤/搜索