本篇文章給大家分享的是有關(guān)MySQL中float和decimal類型的作用是什么,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
成都創(chuàng)新互聯(lián)長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為吳川企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,吳川網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
float,double容易產(chǎn)生誤差,對精確度要求比較高時,建議使用decimal來存,decimal在mysql內(nèi)存是以字符串存儲的,用于定義貨幣要求精確度高的數(shù)據(jù)。在數(shù)據(jù)遷移中,float(M,D)是非標(biāo)準(zhǔn)定義,最好不要這樣使用。M為精度,D為標(biāo)度。
mysql> create table t1(c1 float(10,2), c3 decimal(10,2));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t1 values(1234567.23, 1234567.23);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+------------+------------+
| c1 | c3 |
+------------+------------+
| 1234567.25 | 1234567.23 |
+------------+------------+
1 row in set (0.02 sec)
mysql> insert into t1 values(9876543.21, 9876543.12);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> select * from t1;
+------------+------------+
| c1 | c3 |
+------------+------------+
| 1234567.25 | 1234567.23 |
| 9876543.00 | 9876543.12 |
+------------+------------+
2 rows in set (0.00 sec)
不定義fload, double的精度和標(biāo)度時,存儲按給出的數(shù)值存儲,這于OS和當(dāng)前的硬件有關(guān)。
decimal默認(rèn)為decimal(10,0)
因?yàn)檎`差問題,在程序中,少用浮點(diǎn)數(shù)做=比較,可以做range比較。如果數(shù)值比較,最好使用decimal類型。
精度中,符號不算在內(nèi):
mysql> insert into t1 values(-98765430.21, -98765430.12);
Query OK, 1 row affected (0.01 sec)
mysql> select * from t1;
+--------------+--------------+
| c1 | c3 |
+--------------+--------------+
| 1234567.25 | 1234567.23 |
| 9876543.00 | 9876543.12 |
| -98765432.00 | -98765430.12 |
+--------------+--------------+
3 rows in set (0.00 sec)
float占4個字節(jié),double占8個字節(jié),decimail(M,D)占M+2個字節(jié)。
decimal 類型可以精確地表示非常大或非常精確的小數(shù)。大至 1028(正或負(fù))以及有效位數(shù)多達(dá) 28 位的數(shù)字可以作為 decimal類型存儲而不失其精確性。該類型對于必須避免舍入錯誤的應(yīng)用程序(如記賬)很有用。
float是浮點(diǎn)數(shù),不能指定小數(shù)位。
decimal是精確數(shù),可以指定精度。
對mysql 5來說 decimal(p,s)中p最大為65,S最大為30
decimal數(shù)據(jù)類型最多可存儲 38 個數(shù)字,它存儲了一個準(zhǔn)確(精確)的數(shù)字表達(dá)法,不存儲值的近似值。
當(dāng)數(shù)據(jù)值一定要按照指定精確存儲時,可以用帶有小數(shù)的decimal數(shù)據(jù)類型來存儲數(shù)字。
float和real數(shù)據(jù)類型被稱為近似的數(shù)據(jù)類型。不存儲精確值.當(dāng)要求精確的數(shù)字狀態(tài)時,比如在財務(wù)應(yīng)用程序中,在那些需要舍入的操作中, 或在等值核對的操作中,就不使用這些數(shù)據(jù)類型。這時就要用integer、decimal、money或smallmone數(shù)據(jù)類型。
在 WHERE 子句搜索條件中(特別是 = 和 <> 運(yùn)算符),應(yīng)避免使用float或real列。最好限制使用float和real列做> 或 < 的比較。
以上就是MySQL中float和decimal類型的作用是什么,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前文章:MySQL中float和decimal類型的作用是什么
地址分享:http://chinadenli.net/article48/pigghp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、Google、網(wǎng)站維護(hù)、小程序開發(fā)、做網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)