mysql float和decimal


結論:
1. float 默認只保存6位(除去小數點),如果超過6位,則四舍五入,所以float存儲的數據是不精確的,只是近似值;
2. decimal,如果輸入的數據超過了定義的最大值,那么則溢出,數據庫里面存儲的是定義的最大值,例如,decimal(5,2)輸入123123.45,實際存儲為999.99;
3. decimal,如果只是小數部分超過定義的長度,那么則截斷(非四舍五入)指定長度,例如,decimal(10,2)輸入12345678.123456,實際存儲為12345678.12;
4. decimal,整數部分和小數部分是分開存儲的,每9個數字占用4個字節,在mysql內部使用的二進制存儲,基本沒有長度的限制;
 
建議:
1. 盡量不用float類型;
2. 存錢之類的數據,使用int(bigint)來存,在計算的時候除以100;
3. 一定要存小數的話,decimal是不錯的選擇,但是需要考慮到數據的范圍問題,以防越界產生的錯誤;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM