Mysql字段數據類型Decimal 與Double區別的分析

1、Decimal爲專門爲財務相關問題設計的數據類型。

   與double相比,decimal 類型具有更高的精度和更小的範圍,它適合於財務和貨幣計算。【1】

2、float 和 double 在存儲的時候,存在精度損失的問題,但是decimal沒有或者很少有【2】

 

舉例一:在mysqlbinlog日誌就可以看到這種明細數據  使用DOUBLE 讀不到我們設置的長度和小數點

###   @10=2999.6900000000000546 /* DOUBLE meta=8 nullable=0 is_null=0 */

 

舉例二:在mysqlbinlog日誌就可以看到這種明細數據  使用DECIMAL(12,2) 會是我們在設置數據庫時候的小數點和長度

###   @10=2999.69 /* DECIMAL(12,2) meta=3074 nullable=0 is_null=0 */

 

3、實例驗證

圖示一、

圖示二、

 

分析:按照現在使用DOUBLE 但是在mysqlbinlog中就默認去掉數據庫中長度和小數點,結果就導致在mysqlbinlog中我們看到使用DOUBLE 後面的長度和小數點位數都沒有了,但是使用DECIMAL就不會導致出現這樣的結果

 

#參考資料

【1】https://baike.baidu.com/item/Decimal/8831799?fr=aladdin

     https://www.linuxidc.com/Linux/2013-07/88032.htm

【2】https://blog.csdn.net/abc3224302/article/details/78106508

     https://blog.csdn.net/m1654399928/article/details/54729409

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章