對于游戲幣等代幣,一般存儲(chǔ)為int類型是可行的。問題在于越界,int類型長度為11位。
為雙灤等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及雙灤網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、雙灤網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
在存儲(chǔ)人民幣相關(guān)的金額的時(shí)候,則只能存儲(chǔ)到9長度的人民幣,也就是說,最大只能存儲(chǔ)999999999,不到10億的數(shù)值,如果業(yè)務(wù)增長很快的話,就會(huì)給自己留下隱患。
Decimal:Decimal為專門為財(cái)務(wù)相關(guān)問題設(shè)計(jì)的數(shù)據(jù)類型。
DECIMAL從MySQL5.1引入,列的聲明語法是DECIMAL(M,D)。在MySQL5.1中,參量的取值范圍如下:M是數(shù)字的最大數(shù)(精度)。其范圍為1~65(在較舊的MySQL版本中,允許的范圍是1~254),M的默認(rèn)值是10。
D是小數(shù)點(diǎn)右側(cè)數(shù)字的數(shù)目(標(biāo)度)。其范圍是0~30,但不得超過M。說明:float占4個(gè)字節(jié),double占8個(gè)字節(jié),decimail(M,D)占M+2個(gè)字節(jié)。
如DECIMAL(5,2)的最大值為9999.99,因?yàn)橛?個(gè)字節(jié)可用。能夠解決數(shù)據(jù)的范圍和精度的問題。
擴(kuò)展資料
MySQL數(shù)據(jù)類型DECIMAL用法:
MySQL?DECIMAL數(shù)據(jù)類型用于在數(shù)據(jù)庫中存儲(chǔ)精確的數(shù)值。我們經(jīng)常將DECIMAL數(shù)據(jù)類型用于保留準(zhǔn)確精確度的列,例如會(huì)計(jì)系統(tǒng)中的貨幣數(shù)據(jù)。
要定義數(shù)據(jù)類型為DECIMAL的列,請使用以下語法:column_name??DECIMAL(P,D);
在上面的語法中:
P是表示有效數(shù)字?jǐn)?shù)的精度。?P范圍為1?65。
D是表示小數(shù)點(diǎn)后的位數(shù)。?D的范圍是0~30。MySQL要求D小于或等于(=)P。
DECIMAL(P,D)表示列可以存儲(chǔ)D位小數(shù)的P位數(shù)。十進(jìn)制列的實(shí)際范圍取決于精度和刻度。
與INT數(shù)據(jù)類型一樣,DECIMAL類型也具有UNSIGNED和ZEROFILL屬性。如果使用UNSIGNED屬性,則DECIMALUNSIGNED的列將不接受負(fù)值。
如果使用ZEROFILL,MySQL將把顯示值填充到0以顯示由列定義指定的寬度。另外,如果我們對DECIMAL列使用ZEROFILL,MySQL將自動(dòng)將UNSIGNED屬性添加到列。
double(m, d)
8字節(jié),雙精度浮點(diǎn)型,m總個(gè)數(shù),d小數(shù)位
使用double字段類型來定義,可以設(shè)置保留小數(shù)點(diǎn)位數(shù),一般定義為2(保留兩位小數(shù)點(diǎn))
金錢類型,對于mysql,就是帶小數(shù)的數(shù)字型decimal,你的界面上顯示的時(shí)候,是否要標(biāo)記逗號(hào)等方式,是前臺(tái)展示格式化的問題,和mysql沒有關(guān)系。
存儲(chǔ)人民幣金額應(yīng)該使用DECIMAL類型,保證存儲(chǔ)和計(jì)算的精確性。如果確保金額不會(huì)包含小數(shù)部分,可以使用INT類型。絕對不可以使用浮點(diǎn)類型。