如题,我在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位,然后我想问,这是巧合还是有一定的关系
跪求解答!!!
谢谢各位前辈!!!