鱼C论坛

 找回密码
 立即注册
查看: 1012|回复: 12

[已解决]flaot 精度问题

[复制链接]
发表于 2022-3-4 23:52:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
因为尾数位有23位所以格式应该是
1.后面23位,每位填0or1,转成十进制,有8388608个组合,但是为什么可以直接输出表示值得精准位,一個組合表達一個數字的概念,但是他是在小數後輸出,但是1.23個1內存輸出十進制不是1.8388608...,而是接近2的數字,如在内存尾數最大1.后面23个1,输出=1.9999998807907104(十进制)
,因此这个8388608到底是用來表達什麼,能详细分析白话一点吗 感谢

最佳答案
2022-3-5 16:34:56
kazuya8375 发表于 2022-3-5 10:32
我没要研究只是想理解2^23次方为什么可以表示精准位

(b)1110011.101=1*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0+1*2^-1+0*2^-2+1*2^-3
           =(d)64+32+16+0+0+2+1+0.5+0+0.125
           =(d)115.625

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-5 00:45:25 | 显示全部楼层
1.后面23位,每位填0or1,转成十进制,有8388608个组合
此话怎讲?
这个 8388608 是怎么来的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-5 00:58:58 | 显示全部楼层
2^23次方
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 02:16:32 | 显示全部楼层
输出=1.9999998807907104(十进制)
9999998807907104 这个又是什么?
看不懂你的问题,不知道你要问什么
重新组织一下语言,把你的问题重新说一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 06:43:01 From FishC Mobile | 显示全部楼层
小数点前和后算法不一样,后面是0.5+0.25+0.125+0.0625+...........所以无限接近1
另,研究这些有意义吗,不如有功夫待会
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-5 10:32:37 From FishC Mobile | 显示全部楼层
我没要研究只是想理解2^23次方为什么可以表示精准位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 11:42:32 | 显示全部楼层
kazuya8375 发表于 2022-3-5 10:32
我没要研究只是想理解2^23次方为什么可以表示精准位

什么是精准位?这是你自己创造的名词吗?
用网络上面大家都在用的词汇,重新描述一下你的问题
你得让别人看得懂你的问题,别人才能给你解答问题

https://www.baidu.com/s?ie=utf-8 ... 1&rsv_sug4=3507
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 11:43:46 | 显示全部楼层
kazuya8375 发表于 2022-3-5 10:32
我没要研究只是想理解2^23次方为什么可以表示精准位

求科普,什么是浮点数的精准位
我百度没有找到这个名词的解释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 12:39:53 From FishC Mobile | 显示全部楼层
kazuya8375 发表于 2022-3-5 10:32
我没要研究只是想理解2^23次方为什么可以表示精准位


我觉得你应该去学一下二进制
①逢二进一
②第一位上表示权数×2的零次幂
    第二位上表示权数×2的一次幂
    第三位上表示权数×2的二次幂.................

小数点后面的在⑤楼有说

实在是不知道你想问什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-5 16:34:56 | 显示全部楼层    本楼为最佳答案   
kazuya8375 发表于 2022-3-5 10:32
我没要研究只是想理解2^23次方为什么可以表示精准位

(b)1110011.101=1*2^6+1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0+1*2^-1+0*2^-2+1*2^-3
           =(d)64+32+16+0+0+2+1+0.5+0+0.125
           =(d)115.625

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-6 12:18:29 From FishC Mobile | 显示全部楼层
圖中 2^23由來 可以詳細說明嗎
5269E682-B578-4B76-A018-74CE216F73E7.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-6 16:24:11 | 显示全部楼层
float的进度只有7位超过精度就会精度丢失,至于会变成什么我也不知道,是随机的,double是15位。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-7 21:12:04 | 显示全部楼层
因此这个8388608到底是用來表達什麼
仅仅只是用来数一数这个数字有多少位
一共有7位
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 08:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表