flaot 类型介绍

float: float类型可以存浮点数(即小数类型),但是float有个缺点的,当不指定小数位数的时候,那么它就会出现小数位数与想要的不一致,导致“报错”(此错误可能是位数不对,也可能是数值不对)。备注:所以在创建浮点类型的时候必须指定小数位数,float(m,d),m表示的是最大长度,d表示的显示的小数位数,所以在初始化的过程中指点一下即可。

1. float 默认只保存6位(除去小数点),如果超过6位,则四舍五入,所以float存储的数据是不精确的,只是近似值;
2. decimal,如果输入的数据超过了定义的最大值,那么则溢出,数据库里面存储的是定义的最大值,例如,decimal(5,2)输入123123.45,实际存储为999.99;
3. decimal,如果只是小数部分超过定义的长度,那么则截断(非四舍五入)指定长度,例如,decimal(10,2)输入12345678.123456,实际存储为12345678.12;
4. decimal,整数部分和小数部分是分开存储的,每9个数字占用4个字节,在mysql内部使用的二进制存储,基本没有长度的限制;
5.
float,double存在精度 的问题,decimal在数据库中其实是按照字符串来存储的。如果要存储如金钱等对精度要求很高的数据建议使用decimal

建议:
1. 尽量不用float类型;
2. 存钱之类的数据,使用int(bigint)来存,在计算的时候除以100;
3. 一定要存小数的话,decimal是不错的选择,但是需要考虑到数据的范围问题,以防越界产生的错误;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值