为什么我输入1.0000后的运行结果是0.000000?
谢谢你的回答,不过我还想问的是我以单精度输入后以双精度存储再以单精度输出的结果为什么会把它的值都改变,由双到单不是只去尾数吗?能帮我再解答下吗?麻烦了
追答你注意看下:
void main()
{ double x;
scanf("%f",&x);
printf("%f",x);
while(1);
}
结果:
输入1
输出 -92559604281615349000000000000000000000000000000000000000000000.000000
输入 2
输出 -92559604377396321000000000000000000000000000000000000000000000.000000
它
再看下十六进制的结果:
unsigned double x;
scanf("%f",&x);
printf("%x",x);
输入1 输出 3f800000 输入2 输出 40000000
也就是他是一个随机数?是不是还跟编译器有关,我的没显示0.000000之前那部分。你太热心了,非常感谢!
追答对 ,应该是格式不对,存储时内存出现混乱罢了,所以注意输入的格式