MYSQL(三)

本文深入探讨了MySQL数据库中的浮点数类型,包括单精度FLOAT和双精度DOUBLE,以及定点数类型DECIMAL,分析了它们在存储和精度上的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0)登录数据库


1)插入数据到 intdata 表中


INSERT INTO intdata VALUES(1,1,1);


2)查看数据库


mysql> SELECT * FROM intdata;
+------+------+------+
| a    | b    | c    |
+------+------+------+
|    1 |    1 |    1 |
+------+------+------+
1 row in set (0.00 sec)


3)插入的数据如果超出自己设定的长度,但不超过系统的默认长度,还是可以插入的;比如:人为设定 int 型 4 个长度,插入 111111 六个 1 ;依然可以插入;因为系统默认的 int 类型为 11 个长度;


4)浮点数类型和定点数类型

浮点数类型包括单精度(FLOAT型)和双精度(DOUBLE型);定点数类型就是 DECIMAL 型;





5) 如果插入值的精度高于实际定义的精度,系统会自动进行四舍五入处理,使值的精度达到要求。不同的是,FLOAT型和DOUBLE型在四舍五入时不会报错,而DECIMAL型会有警告


如float(6,2) double(6.2) decimal(6,2)
对应插入
3.143 3.145 3.1434(注意M+2,小数点只有两位,但要加上两位)


得到的结果
3.14 3.15 3.14


其中decimal会有警告


通过show warnings;查看


6)如果不指定精度,浮点数和定点数尤其默认的精度。FLOAT型和DOUBLE型默认会保存实际精度,但这与操作系统和硬件的精度有关;DECIMAL型默认整数位为10,小数位为0,
比如 5)中的 decimal 型就会变成 3 ,小数点都的统统截掉


7)在MYSQL中,定点数以字符串形式存储。因此,其精度比富点数要高。而且,浮点数会出现误差,这是浮点数一直存在的缺陷。如果要丢数据的进度要求比较高,还是选择定点数(DECIMAL)比较安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值