一、簡述
在實際的企業級開發中,經常遇到需要存儲金額(3888.00元)的字段,這時候就需要用到數據類型decimal。
在MySQL數據庫中,DECIMAL的使用語法是:DECIMAL(M,D),其中,
M 的範圍是1~65,
D 的範圍是0~30,
而且D不能大於M。
二、最大值
數據類型爲DECIMAL的字段,可以存儲的最大值/範圍是多少?
例如:DECIMAL(5,2),則該字段可以存儲-999.99~999.99,最大值爲999.99。
也就是說D表示的是小數部分長度,(M-D)表示的是整數部分長度。
三、存儲
DECIMAL類型的數據存儲形式是,將每9位十進制數存儲爲4個字節(官方解釋:Values for DECIMAL columns are stored using a binary format that packs nine decimal digits into 4 bytes)。
那有可能設置的位數不是9的倍數,官方還給瞭如下表格對照:
Leftover Digits | Number of Bytes |
0 | 0 |
1–2 | 1 |
3–4 | 2 |
5–6 | 3 |
7–9 | 4 |
表格什麼意思呢,舉個例子:
1、字段DECIMAL(18,9),18-9=9,這樣整數部分和小數部分都是9,那兩邊分別佔用4個字節;
2、字段DECIMAL(20,6),20-6=14,其中小數部分爲6,就對應上表中的3個字節,而整數部分爲14,14-9=5,就是4個字節再加上表中的3個字節。
四、參考
Copyright © 2018 Ansel. All rights reserved.