mysql 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
    -> (
    -> 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;
+------------+
| 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;
+-------+
| 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)

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)

 

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。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库中的double类型是一种用于存储浮点数的数据类型。它可以存储较大范围的数值,包括整数和小数。对于操作double类型数据,你可以使用以下方法: 1. 插入和更新数据:当插入或更新double类型的数据时,你可以直接将数值写入double字段中,无需进行额外的换。MySQL会自动将其存储为double类型。 2. 查询和筛选数据:当查询和筛选double类型的数据时,你可以使用相应的SQL语句,例如SELECT语句来获取double字段的值。你可以通过WHERE子句来筛选满足特定条件的数据。 3. 类型换:如果需要将double类型的数据换为其他类型,你可以使用CAST函数或者将其作为参数传递给其他函数进行换。例如,你可以使用CAST函数将double类型的数据换为varchar类型,或者将其作为参数传递给数学函数进行计算。 需要注意的是,由于浮点数的特性,double类型可能存在精度问题。当存储较大或较小的浮点数时,可能会出现舍入误差或数据失真。因此,在进行计算或比较操作时,你应该谨慎处理double类型的数据,避免由于精度问题导致的错误结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [double在数据库怎么定义 mysqldouble类型在sql中用什么类型](https://blog.csdn.net/weixin_33737110/article/details/115926037)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [mysql:列类型floatdouble](https://blog.csdn.net/u010476739/article/details/122879976)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值