打印

float类型的有效位问题

[复制链接]
1074|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2012-8-26 15:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
搜索出来的结果是float的有效位数是6位或7位
如果是1.2345678这样的数字则第8个有效数字则是不可靠的。
但是如果是123456783454345.0这样的数字,8以后的位都是不可靠的吗?

相关帖子

沙发
无冕之王| | 2012-8-26 15:32 | 只看该作者
楼主思考一下,float只有4字节,不可能既能表示比最大的int(同样是4字节)还大的数据,而且却不损失精度

设想一个离散空间里所有的int
两个挨得最近的int,差值总为1

但设想一个离散空间的所有float
两个挨得最近的float的差值,取决于它们是哪两个,而不是恒定差值

float越小,差值越小,float越大,差值越大

使用特权

评论回复
板凳
yybj| | 2012-8-26 15:44 | 只看该作者
float的最有24位有效位或23位有效位
10^7 < 2^24 < 10^8 有效位数为7位
10^6 < 2^23 < 10^7 有效位数为8位

之后再乘上指数后有效位数不变

使用特权

评论回复
地板
autor| | 2012-9-7 12:36 | 只看该作者
跟着学习啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝