国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL中Decimal類型和Float Double的區別(詳解)

2024-07-24 13:12:46
字體:
來源:轉載
供稿:網友

MySQL中存在float,double等非標準數據類型,也有decimal這種標準數據類型。

其區別在于,float,double等非標準類型,在DB中保存的是近似值,而Decimal則以字符串的形式保存數值。
float,double類型是可以存浮點數(即小數類型),但是float有個壞處,當你給定的數據是整數的時候,那么它就以整數給你處理。這樣我們在存取貨幣值的時候自然遇到問題,我的default值為:0.00而實際存儲是0,同樣我存取貨幣為12.00,實際存儲是12。

幸好mysql提供了兩個數據類型:decimal,這種數據類型可以輕松解決上面的問題:decimal類型被 MySQL 以同樣的類型實現,這在 SQL92 標準中是允許的。他們用于保存對準確精度有重要要求的值,例如與金錢有關的數據。

數據定義

float(M,S) M為全長,S為小數點后長度。對于不精準的例子,網絡上很多,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 --- 小數點后最多2位,所以保存可以,自動四舍五入數據截斷,但會報waning

12.34 --- OK

1234.5 --- 因為小數部分未滿2位,要補0.所以保存應該1234.50。所以整個位數超出了5,保存報錯。

1.2 --- 小數未滿部分補0。按照1.20保存。

默認狀態比較

浮點數如果不寫經度和標度,會按照實際精度值保存,如果有精度和標度,則會自動將四舍五入后的結果插入,系統不會報錯;定點數如果不寫精度和標度,則按照默認值decimal(10,0) 來操作,如果數據超過了精度和標度值,系統會報錯。

以上這篇MySQL中Decimal類型和Float Double的區別(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西和县| 定南县| 晋宁县| 兰州市| 元氏县| 临西县| 茌平县| 绍兴县| 通海县| 盐城市| 阿拉善左旗| 高青县| 华蓥市| 青龙| 德清县| 明溪县| 手游| 普定县| 南昌县| 五原县| 府谷县| 沾化县| 永胜县| 静安区| 双流县| 阜城县| 攀枝花市| 婺源县| 沁阳市| 星子县| 磴口县| 花莲市| 榕江县| 武定县| 通州市| 雷山县| 南昌县| 金山区| 吴旗县| 磐石市| 黎川县|