float最多几位小数_float,double 小记

1a353a730b4deb59f8c22a596ede7369.png

float,double的存储数据精度是根据占用的位数决定的三种字符类型的占用位数如下:

float 浮点类型 类型占用32位 1 符号位 8 指数位 23 尾数位

double 浮点类型 类型占用64位 1 符号位 11 指数位 52 尾数位

float 类型的数再转为二进制的科学记数法时 +/- 1.xxx * 2 ^ +/- yyyy

X(尾数位) 所以精确度就变成了23+1位,因为任何二进制的科学记数法都会表示为1.xxx*2^n Y(指数位-1因为有一个符号为即2的负指数幂)

log10(2^24)=7.2247198959355486851297334733878 所以float可以表示的十进制数的精确有效位是7位 即最大时1000000

测试一下:

CREATE TABLE `float_test` (`id` float DEFAULT NULL) ENGINE=InnoDB ;

mysql> insert into float_test values(999999);

mysql> insert into float_test values(1000000);

mysql> insert into float_test values(1000001);

mysql> select * from float_test;

+---------+

| id |

+---------+

| 999999 |

| 1000000 |

| 1000000 |

+---------+

另外 要得到1位小数的话,整数不能高于5位。

要得到2位小数的话,整数不能高于4位

要得到3位小数的话,整数不能高于3位

要得到4位小数的话,整数不能高于2位

要得到5位小数的话,整数不能高于1位

要得到6位小数的话,整数不能高于0位

小数最多七位其实是0.1000000

同理可以计算double的精确度整数最多16位,小数最多16位(0.1000000000000000)

decimal 不动点类型 对多存储65位数字

本想温习一下,往深一看发现还是有很多知识欠缺,如有错误之处还请大家多多指点

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值