共計 2655 個字符,預計需要花費 7 分鐘才能閱讀完成。
mysql 中 float 和 double 類型的作用是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
float double 類型
1.float 類型
float 列類型默認長度查不到結果,必須指定精度,
比如 num float, insert into table (num) values (0.12); select * from table where num=0.12 的話,empty set。
num float(9,7), insert into table (num) values (0.12); select * from table where num=0.12 的話會查到這條記錄。
mysql create table tt
– ( www.2cto.com
– num float(9,3)
–
Query OK, 0 rows affected (0.03 sec)
mysql insert into tt(num)values(1234567.8);
ERROR 1264 (22003): Out of range value for column num at row 1
注:超出字段范圍,無法插入
mysql insert into tt(num)values(123456.8);
Query OK, 1 row affected (0.00 sec)
mysql select * from tt;
+————+
| num |
+————+
| 123456.797 |
+————+
1 row in set (0.00 sec)
注:小數(shù)位數(shù)不夠,自動補齊,但是存在一個問題就是如上的近似值。
mysql insert into tt(num)values(123456.867);
Query OK, 1 row affected (0.04 sec)
mysql select * from tt;
+————+ www.2cto.com
| num |
+————+
| 123456.797 |
| 123456.797 |
| 123456.867 |
+————+
3 rows in set (0.00 sec)
mysql select * from tt where num=123456.867;
+————+
| num |
+————+
| 123456.867 |
+————+
1 row in set (0.00 sec)
mysql insert into tt(num)values(2.8);
Query OK, 1 row affected (0.04 sec)
mysql select * from tt;
+————+
| num |
+————+
| 123456.797 |
| 123456.797 |
| 123456.867 |
| 2.800 |
+————+
4 rows in set (0.00 sec)
mysql select * from tt where num=2.8;
+——-+ www.2cto.com
| num |
+——-+
| 2.800 |
+——-+
1 row in set (0.00 sec)
mysql insert into tt(num)values(2.888888);
Query OK, 1 row affected (0.00 sec)
mysql select * from tt;
+————+
| num |
+————+
| 123456.797 |
| 123456.797 |
| 123456.867 |
| 2.800 |
| 2.889 |
+————+
5 rows in set (0.00 sec)
注:小數(shù)位數(shù)超了,自動取近似值。
————————————————————————————–
2.double 類型
mysql create table tt(
– num double(9,3)
–
Query OK, 0 rows affected (0.02 sec)
mysql insert into tt(num) values(234563.9);
Query OK, 1 row affected (0.00 sec)
www.2cto.com
mysql select * from tt;
+————+
| num |
+————+
| 234563.900 |
+————+
1 row in set (0.00 sec)
mysql insert into tt(num) values(2345623.2);
ERROR 1264 (22003): Out of range value for column num at row 1
mysql insert into tt(num) values(234563.2);
Query OK, 1 row affected (0.00 sec)
mysql select * from tt;
+————+
| num |
+————+
| 234563.900 |
| 234563.200 |
+————+
2 rows in set (0.00 sec)
mysql insert into tt(num) values(2.8);
Query OK, 1 row affected (0.00 sec)
mysql select * from tt;
+————+
| num |
+————+
| 234563.900 |
| 234563.200 |
| 2.800 |
+————+
3 rows in set (0.00 sec)
www.2cto.com
FLOAT(M,D) 或 REAL(M,D)或 DOUBLE PRECISION(M,D)。這里,“(M,D)”表示該值一共顯示 M 位整數(shù),其中 D 位位于小數(shù)點后面。
例如,定義為 FLOAT(7,4)的一個列可以顯示為 -999.9999。MySQL 保存值時進行四舍五入,因此如果在 FLOAT(7,4)列內插入 999.00009,近似結果是 999.0001。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業(yè)資訊頻道,感謝您對丸趣 TV 的支持。