在mysql中,金額用「DECIMAL」類型。 DECIMAL類型是專門為財務相關問題而設計的數據類型,能夠解決數據的範圍和精度的問題,常用於貨幣數據,如價格,工資,帳戶餘額等;它實際上是以字符串的形式存放的,可在定義時劃定整數部分以及小數部分的位數,語法“DECIMAL(M,D)”,參數M是數字的最大數(精度),參數D是小數點右側數字的數目(標度)。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
在mysql中,金額用「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 個位元組可用。
DECIMAL 類型不同於 FLOAT 和 DOUBLE。 DOUBLE 實際上是以字串的形式存放的,DECIMAL 可能的最大取值範圍與 DOUBLE 相同,但是有效的取值範圍由 M 和 D 決定。如果改變 M 而固定 D,則取值範圍將隨 M 的變大而變大。
強調:在MySQL 中,定點數以字串形式存儲,在對精度要求比較高的時候(如貨幣、科學數據),使用DECIMAL 的類型比較好,另外兩個浮點數進行減法和比較運算時也容易出問題,所以在使用浮點數時需要注意,並儘量避免做浮點數比較。
MySQL DECIMAL資料類型和貨幣資料
我們經常將DECIMAL資料類型用於貨幣數據,如價格,工資,帳戶餘額等。如果您設計一個處理貨幣資料的資料庫,則以下語法應沒問題。
amount DECIMAL(19,2);
但是,如果您要遵守公認會計原則(GAAP)規則,則貨幣列必須至少包含4個小數位,以確保舍入值不超過0.01美元。在這種情況下,您應定義具有4個小數位的列,如下所示:
amount DECIMAL(19,4);
#MySQL DECIMAL資料類型範例
首先,建立一個新表名為materials三個欄位分別:id,description和cost。
CREATE TABLE materials ( id INT AUTO_INCREMENT PRIMARY KEY, description VARCHAR(255), cost DECIMAL(19 , 4 ) NOT NULL );
其次,將資料插入materials表中。
INSERT INTO materials(description,cost) VALUES('Bicycle', 500.34),('Seat',10.23),('Break',5.21);
第三,從表中查詢資料materials。
SELECT * FROM materials;
第四,修改cost欄位以包含ZEROFILL屬性。
ALTER TABLE materials MODIFY cost DECIMAL(19,4) zerofill;
五,再查詢材料表。
SELECT * FROM materials;
如您所見,我們在輸出值中填入了許多零。
【相關推薦:mysql影片教學】
#以上是mysql中金額用什麼類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!