mysql中float 和double类型的作用是什么

54次阅读
没有评论

共计 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)
注:小数位数不够,自动补齐,但是存在一个问题就是如上的近似值。
 
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)
注:小数位数超了,自动取近似值。
————————————————————————————–
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 位整数,其中 D 位位于小数点后面。
例如,定义为 FLOAT(7,4)的一个列可以显示为 -999.9999。MySQL 保存值时进行四舍五入,因此如果在 FLOAT(7,4)列内插入 999.00009,近似结果是 999.0001。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2655字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)