一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Mysql - MySQL中Decimal類(lèi)型和Float Double的區(qū)別(詳解)

MySQL中Decimal類(lèi)型和Float Double的區(qū)別(詳解)

2020-07-22 16:48MYSQL教程網(wǎng) Mysql

下面小編就為大家?guī)?lái)一篇MySQL中Decimal類(lèi)型和Float Double的區(qū)別(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

MySQL中存在float,double等非標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型,也有decimal這種標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型。

其區(qū)別在于,float,double等非標(biāo)準(zhǔn)類(lèi)型,在DB中保存的是近似值,而Decimal則以字符串的形式保存數(shù)值。
float,double類(lèi)型是可以存浮點(diǎn)數(shù)(即小數(shù)類(lèi)型),但是float有個(gè)壞處,當(dāng)你給定的數(shù)據(jù)是整數(shù)的時(shí)候,那么它就以整數(shù)給你處理。這樣我們?cè)诖嫒∝泿胖档臅r(shí)候自然遇到問(wèn)題,我的default值為:0.00而實(shí)際存儲(chǔ)是0,同樣我存取貨幣為12.00,實(shí)際存儲(chǔ)是12。

幸好mysql提供了兩個(gè)數(shù)據(jù)類(lèi)型:decimal,這種數(shù)據(jù)類(lèi)型可以輕松解決上面的問(wèn)題:decimal類(lèi)型被 MySQL 以同樣的類(lèi)型實(shí)現(xiàn),這在 SQL92 標(biāo)準(zhǔn)中是允許的。他們用于保存對(duì)準(zhǔn)確精度有重要要求的值,例如與金錢(qián)有關(guān)的數(shù)據(jù)。

數(shù)據(jù)定義

float(M,S) M為全長(zhǎng),S為小數(shù)點(diǎn)后長(zhǎng)度。對(duì)于不精準(zhǔn)的例子,網(wǎng)絡(luò)上很多,Copy如下:

mysql> create table t1(c1 float(10,2), c3decimal(10,2));

Query OK, 0 rows affected (0.02 sec)

mysql> insert into t1 values(9876543.21, 9876543.12);

Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;

+----------------+-----------------+

| c1 | c3 |

+----------------+-----------------+

| 9876543.00 | 9876543.12 |

+----------------+------------------+

2 rows in set (0.00 sec)

再舉例: DECIMAL(5,2)

mysql> create table t1(id1 float(5,2) default null,id2 double(5,2) default null,
id3 decimal(5,2) default null );

mysql> insert into t1 values(1.2345,1.2345,1.2345);
Query OK, 1 row affected, 1 warning (0.04 sec)

mysql> show warnings;
+-------+------+------------------------------------------+
| Level | Code | Message |
+-------+------+------------------------------------------+
| Note | 1265 | Data truncated for column 'id3' at row 1 |
+-------+------+------------------------------------------+
1 row in set (0.00 sec)

1.2345 --- 小數(shù)點(diǎn)后最多2位,所以保存可以,自動(dòng)四舍五入數(shù)據(jù)截?cái)?但會(huì)報(bào)waning

12.34 --- OK

1234.5 --- 因?yàn)樾?shù)部分未滿(mǎn)2位,要補(bǔ)0.所以保存應(yīng)該1234.50。所以整個(gè)位數(shù)超出了5,保存報(bào)錯(cuò)。

1.2 --- 小數(shù)未滿(mǎn)部分補(bǔ)0。按照1.20保存。

默認(rèn)狀態(tài)比較

浮點(diǎn)數(shù)如果不寫(xiě)經(jīng)度和標(biāo)度,會(huì)按照實(shí)際精度值保存,如果有精度和標(biāo)度,則會(huì)自動(dòng)將四舍五入后的結(jié)果插入,系統(tǒng)不會(huì)報(bào)錯(cuò);定點(diǎn)數(shù)如果不寫(xiě)精度和標(biāo)度,則按照默認(rèn)值decimal(10,0) 來(lái)操作,如果數(shù)據(jù)超過(guò)了精度和標(biāo)度值,系統(tǒng)會(huì)報(bào)錯(cuò)。

以上這篇MySQL中Decimal類(lèi)型和Float Double的區(qū)別(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎最新永久免费网址 | 麻豆视频免费在线播放 | 美女gif趴跪式抽搐动态图 | 日韩r| 国产无套在线播放 | 亚洲娇小videos | 精品国产一二三区在线影院 | 欧美2区| 国产精品日本一区二区不卡视频 | 亚州精品永久观看视频 | 俄罗斯一级毛片免费播放 | 亚洲国产欧美在线人成aaa | 久久免费看少妇高潮A片特爽 | 亚洲成年www | 色婷婷久久综合中文久久一本` | 色cccwww| 久久这里只有精品国产精品99 | 国产黄频 | 国产亚洲精aa在线观看香蕉 | 乌克兰精品摘花处破 | 精品第一国产综合精品蜜芽 | 成年看片免费高清观看 | 国产精品天天看天天爽 | 美女张开腿让我了一夜 | 国内自拍网红在综合图区 | 手机看片1024国产 | 2019韩国最新三级 | 青草碰人人澡人人澡 | 97精品久久天干天天蜜 | 国产一级视频在线观看 | 亚洲成人99 | 日本漫画工囗全彩番在线 | 3x免费高清视频 | 99色在线播放 | 国产盗摄wc女厕所 | 亚洲国产中文字幕在线视频综合 | free性俄罗斯护士 | 青青热久久综合网伊人 | 日本动漫黄网站在线观看 | 秋霞午夜伦午夜高清福利片 | 欧美 国产 日韩 第一页 |