十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
float類型可以存浮點(diǎn)數(shù),但是float有缺點(diǎn),當(dāng)不指定小數(shù)位數(shù)的時(shí)候,就會(huì)出現(xiàn)小數(shù)位數(shù)與想要的不一致,導(dǎo)致“報(bào)錯(cuò)”。在創(chuàng)建浮點(diǎn)類型的時(shí)候必須指定小數(shù)位數(shù),float(m,d),m表示的是最大長(zhǎng)度,d表示的顯示的小數(shù)位數(shù)。
劍閣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,劍閣網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為劍閣上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的劍閣做網(wǎng)站的公司定做!
雖然兩個(gè)類型的值有相似也有不相似,但定義的是float、插入的值只要不出錯(cuò)肯定是float類型,10表示該值一共顯示10位整數(shù),其中3位位于小數(shù)點(diǎn)后面。
擴(kuò)展資料:
浮點(diǎn)包可以將二進(jìn)制浮點(diǎn)數(shù)存儲(chǔ)為非標(biāo)準(zhǔn)化數(shù),而不使用剛剛介紹的存儲(chǔ)方法。“非標(biāo)準(zhǔn)化數(shù)”是帶有保留指數(shù)值的非零浮點(diǎn)數(shù),其中尾數(shù)的最高有效位為 0。
通過(guò)使用非標(biāo)準(zhǔn)化格式,浮點(diǎn)數(shù)的范圍可以擴(kuò)展,但會(huì)失去精度。您無(wú)法控制浮點(diǎn)數(shù)以標(biāo)準(zhǔn)化形式還是非標(biāo)準(zhǔn)化形式表示;浮點(diǎn)包決定了表示形式。浮點(diǎn)包從不使用非標(biāo)準(zhǔn)化形式,除非指數(shù)變?yōu)樾∮诳梢詷?biāo)準(zhǔn)化形式表示的最小值。
參考資料來(lái)源:百度百科-FLOAT
參考文章:
mysql在進(jìn)行不同類型的參數(shù)的運(yùn)算時(shí)會(huì)產(chǎn)生隱式轉(zhuǎn)換。其中,當(dāng)需要把字符串轉(zhuǎn)為浮點(diǎn)數(shù)的時(shí),mysql從左邊開始對(duì)字符串做轉(zhuǎn)換處理的,轉(zhuǎn)換規(guī)則如下:
mysql 怎么定義小數(shù)float怎么用
float(有效位數(shù),小數(shù)位數(shù))單精度浮點(diǎn)數(shù),一般float(10,2)就夠了
float數(shù)值類型用于表示單精度浮點(diǎn)數(shù)值,而double數(shù)值類型用于表示雙精度浮點(diǎn)數(shù)值,float和double都是浮點(diǎn)型,而decimal是定點(diǎn)型;
MySQL 浮點(diǎn)型和定點(diǎn)型可以用類型名稱后加(M,D)來(lái)表示,M表示該值的總共長(zhǎng)度,D表示小數(shù)點(diǎn)后面的長(zhǎng)度,M和D又稱為精度和標(biāo)度,如float(7,4)的 可顯示為-999.9999,MySQL保存值時(shí)進(jìn)行四舍五入,如果插入999.00009,則結(jié)果為999.0001。
FLOAT和DOUBLE在不指 定精度時(shí),默認(rèn)會(huì)按照實(shí)際的精度來(lái)顯示,而DECIMAL在不指定精度時(shí),默認(rèn)整數(shù)為10,小數(shù)為0。
1、CREATE TABLE test(f FLOAT(5,2) DEFAULT NULL,d DOUBLE(5,2) DEFAULT NULL,de DECIMAL(5,2) DEFAULT NULL);
2、DESC test;
3、INSERT INTO test(f,d,de) VALUES(1.23,1.23,1.23);
數(shù)據(jù)插入都正確
4、INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.23);
數(shù)據(jù)插入都正確,但是f和d由于標(biāo)度的限制,舍去了最后一位。
5、INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.234);
數(shù)據(jù)也插入成功,但是有一個(gè)警告提示:
1 queries executed, 1 success, 0 errors, 1 warnings
Note Code : 1265
Data truncated for column 'de' at row 1
6、將id1,id2,id3的精度和標(biāo)度都去掉
ALTER TABLE test MODIFY f FLOAT;
ALTER TABLE test MODIFY d DOUBLE;
ALTER TABLE test MODIFY de DECIMAL;
DELETE FROM test;
DESC test;
7、INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.234);
1 queries executed, 1 success, 0 errors, 1 warnings
Note Code : 1265
Data truncated for column 'de' at row 1
f和d的數(shù)據(jù)正確插入,而de被截?cái)唷?/p>
浮點(diǎn)數(shù)如果不寫精度和標(biāo)度,則會(huì)按照實(shí)際顯示,如果有精度和標(biāo)度,則會(huì)將數(shù)據(jù)四舍五入后插入,系統(tǒng)不報(bào)錯(cuò),定點(diǎn)數(shù)如果不設(shè)置精度和標(biāo)度,剛按照默認(rèn)的(10,0)進(jìn)行操作,如果數(shù)據(jù)超過(guò)了精度和標(biāo)度值,則會(huì)警告!
同時(shí),對(duì)數(shù)據(jù)求SUM()時(shí)會(huì)出現(xiàn)不同的結(jié)果,float和double求SUM都會(huì)出現(xiàn)很多小數(shù)點(diǎn),而decimal求SUM得到的是精準(zhǔn)數(shù)值:
8、INSERT INTO test(f,d,de) VALUES(1.234,0.01,1.23);
數(shù)據(jù)都插入成功
9、SELECT SUM(f),SUM(d),SUM(de) FROM test;
理論上SUM(f)=3.698,SUM(d)=2.474,SUM(de)=3.46,但f,d都出現(xiàn)后面很長(zhǎng)的一串浮點(diǎn)小數(shù)點(diǎn)。