求助,关于c语言中float和double型变量赋值相同的问题

jhunhaohao jhunhaohao 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题,我在c语言中分别定义一个float型变量a和一个double型变量b,然后分别赋值为1.2
#include<stdio.h>
int main()
{
float a = 1.2; double b = 1.2;
printf("%.lf", a - b);
return 0;
}

目的是想验证a-b的值是否为0.
通过改变printf语句输出时的位数要求,我完成了5次实验,发现精度不同的情况下a和b的值是不同的
如图,当输出要求达到60位时,出现了后面有8个0的情况,也就是说一共有52个位上有数字
那么,我就自然的想到实数存储时的尾数问题,double型变量存储时的尾数就是52位,然后我想问,这是巧合还是有一定的关系
跪求解答!!!
谢谢各位前辈!!!
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
jhunhaohao
C语言 70,040 成员 243,237 内容