mysql numeric float_sql 下,float和numeric
搜了下兩者的區別,答案其實很明顯:
numeric支持最長38位長度的數字,只有在你要的數字的長度超過38位時才推薦使用float
原因是,float在保存和提取,以及數學計算等方面,會產生于期待記過不一致的情況。
為什么呢?
因為float和real,保存的是一種近似值,而非準確值。比如,向float列中保存一個數,3.8,存完之后有可能變成3.7999999或者3.80000124
或者,存入2390.006529380733,變為2390.00652938073。少一位
但是float參與的浮點計算,確實有很大問題。
具體表現為,莫名其妙的自動保留不確定的有效小數位數。而且這種情況經常只在第一次計算時出現,時對時錯。很不穩定
這個問題,我用numeric時也時有發生。所以現在比較困惑float到底該不該用。
而real參與的數學運算,問題最大,大多數情況結果都是錯的:
0.165970772443(numeric)+0.1659708(real)=0.3319415
0.1659708(real)+0.165970772443(float)=0.331941544947806
總之,在float和real參與的計算和存取操作中,都會有莫名其妙的增減小數位的現象。
numeric雖然我也碰到過這種問題,但是幾率相當小。
不喜歡用numeric的地方是,它會在小數位上保留無效的0,來占滿設定的小數位數,而這點上,float會自動去除無效的0.看起來要清晰,轉換成varchar時也不會看起來別扭。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mysql numeric float_sql 下,float和numeric的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++学习之路 | PTA乙级—— 10
- 下一篇: php点击链接代码,php 获取超链接中