mysql裏記錄貨幣用什麼字段類型好?

在java的開發中,貨幣在數據庫中MySQL常用Decimal和Numric類型表示,這兩種類型被MySQL實現爲同樣的類型。他們被用於保存值,該值的準確精度是極其重要的值,例如與金錢有關的數據。當聲明一個類是這些類型之一時,精度和規模的能被(並且通常是)指定;例如:

salary DECIMAL(9,2)

在這個例子中,9(precision)代表將被用於存儲值的總的小數位數,而2(scale)代表將被用於存儲小數點後的位數。因此,在這種情況下,能被存儲在salary列中的值的範圍是從-9999999.99到9999999.99。

           DECIMAL和NUMERIC值作爲字符串存儲,而不是作爲二進制浮點數,以便保存那些值的小數精度。一個字符用於值的每一位、小數點(如果scale>0)和“-”符號(對於負值)。如果scale是0,DECIMAL和NUMERIC值不包含小數點或小數部分。

           不使用float或者double的原因:因爲float和double是以二進制存儲的,所以有一定的誤差。

比如:在數據庫中c1,c2,c3分別存儲類型是float(10.2),decimal(10.2),float類型。

         插入數據:

        

INTO test (c1,c2,c3) VALUES (1234567.23,1234567.23,1234567.23)

數據在數據庫中的存儲結果是:

         可以看出,使用float類型存儲有一定的誤差。因此使用decimal或者numric類型。

發佈了71 篇原創文章 · 獲贊 76 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章