Mysql的浮點精確度


1.mysql的用於記錄小數的類型有三個float ,decimal 和double他們之間的關系

先創建一個表test都用了float ,decimal 和double


插入一條數據查看發現沒有發現精度丟失問題


再插入一條數據,發現精度損失:


查看三個類型的范圍:


插入小數的位數多的話會進行四舍五入,不會給出警告或者插入不進去的情況:


插入位數多點的,發現float精度損失更加嚴重而decimal精度沒有損失:


這就是浮點數的不精確性造成的。

在mysql中float、double(或real)是浮點數,decimal(或numberic)是定點數。

浮點數相對於定點數的優點是在長度一定的情況下,浮點數能夠表示更大的數據范圍;它的缺點是會引起精度問題。

在今后關於浮點數和定點數的應用中,大家要記住以下幾點:

   1、浮點數存在誤差問題;

   2、對貨幣等對精度敏感的數據,應該用定點數表示或存儲;

   3、編程中,如果用到浮點數,要特別注意誤差問題,並盡量避免做浮點數比較;

   4、要注意浮點數中一些特殊值的處理。













注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: