关于浮点数的尾数问题-[网摘收录]
网上的一个基础问题,原题如下:
#include <stdio.h>
int main()
{
int a;
float b;
char c;
scanf("%d%c%f", &a,&c,&b);
printf("%d,%c,%f", a,c,b);
return 0;
}
为什么这个程序输入1234r1234.567时,输出是1234,r,1234.567017后面的017是怎么回事??
网友最佳回答:
浮点型默认是小数点后六位,虽然你的数据小数点后只有三位,但电脑会为它分配更多的内存地址,后面的多余三位是随机的,数据是不确定的,因此换一次运行,结果不是017,也可能是170。你输出是需要限制小数点后的位数,具体参考一下教材。
吾屋无污,吴捂屋污,诬吾污屋,吾晤吴污,吾无物污,吴侮污吾,吾忤吴屋,悟吴诬吾,污屋吴污,吴侮吾污,吾勿武侮,吾唔吴误,诬侮污吾,吾屋悟忤.