1.mysql的用於記錄小數的類型有三個float ,decimal 和double他們之間的關系
先創建一個表test都用了float ,decimal 和double
插入一條數據查看發現沒有發現精度丟失問題
再插入一條數據,發現精度損失:
查看三個類型的范圍:
插入小數的位數多的話會進行四舍五入,不會給出警告或者插入不進去的情況:
插入位數多點的,發現float精度損失更加嚴重而decimal精度沒有損失:
這就是浮點數的不精確性造成的。
在mysql中float、double(或real)是浮點數,decimal(或numberic)是定點數。
浮點數相對於定點數的優點是在長度一定的情況下,浮點數能夠表示更大的數據范圍;它的缺點是會引起精度問題。
在今后關於浮點數和定點數的應用中,大家要記住以下幾點:
1、浮點數存在誤差問題;
2、對貨幣等對精度敏感的數據,應該用定點數表示或存儲;
3、編程中,如果用到浮點數,要特別注意誤差問題,並盡量避免做浮點數比較;
4、要注意浮點數中一些特殊值的處理。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。