大概意思是這樣的:
decimal(m,d)
m是數字的最大位數,他的範圍是從1-65;
d是小數點後的位數,他的範圍是0-30,並且不能大於m。
如果m被省略了,那麽m的值默認為10,
如果d被省略了,那麽d的值默認為0.
舉例表示:
1、decimal(5,2) 所指代的範圍是-999.99~999.99 數字的最大位數是5位,小數點右側是2位,即有兩位小數。
2、decimal(7,6)所指代的範圍是-9.999999~9.999999 數字的最大位數是7位,小數點右側是6位,即有六位小數。
字的位數和所占字節數,有以下對應表:
小數點左側位數
數據結構所占的字節數
1–2 1
3–4 2
5–6 3
7–9 4
舉例表示:
decimal(18,9)小數位左右各為9位數,此數據所占以上表格即為4字節整數位,4字節小數位;
decimal(20,6)整數位為14位,小數位位6位,此數據需要4個字節給整數位的9位和3字節給另外的5位整數,另外小數位需要3個字節,總***是4+3+3 = 11個字節。
decimal不能夠存儲以“+”、“-”和“0”開頭的數據,如果是“+”開頭momo默認存為正數,而“-”開頭則不存儲
具體的對decimal的定義,可以在mysql源碼中的strings/decimal.c文件中的decimal2bin()函數查看。