1. 程式人生 > >【MYSQL】金額(金錢)相關的資料儲存型別

【MYSQL】金額(金錢)相關的資料儲存型別

int

對於遊戲幣等代幣,一般儲存為int型別是可行的。

問題在於越界,int型別長度為11位。

在儲存人民幣相關的金額的時候,則只能儲存到9長度的人民幣,也就是說,最大隻能儲存999999999,不到10億的數值,如果業務增長很快的話,就會給自己留下隱患。

Decimal

Decimal為專門為財務相關問題設計的資料型別。

DECIMAL從MySQL 5.1引入,列的宣告語法是DECIMAL(M,D)。在MySQL 5.1中,參量的取值範圍如下:

·M是數字的最大數(精度)。其範圍為1~65(在較舊的MySQL版本中,允許的範圍是1~254),M 的預設 值是10。

·D是小數點右側數字的數目(標度)。其範圍是0~30,但不得超過M。

說明:float佔4個位元組,double佔8個位元組,decimail(M,D)佔M+2個位元組。

如DECIMAL(5,2) 的最大值為9 9 9 9 . 9 9,因為有7 個位元組可用。

能夠解決資料的範圍和精度的問題。

總結

這兩種方式都是可行的解決方案,我們可以根據具體情況使用合適的方案。

參考資料