【发布时间】:2013-11-10 14:17:48
【问题描述】:
我无法理解为什么会发生这种情况: 使用以下代码;
#include <stdio.h>
int main()
{
double x=123;
printf("x is %f. Enter a new value for x.\n", x);
scanf("%f", &x);
printf("x is %f\n", x);
return 0;
}
当您输入 45678 作为 x 的新值时,将打印“x is 123.000017”。 我知道当你在扫描的时候使用 %lf 就可以解决这个问题,但是为什么在使用 %f 的时候会出现这种情况呢?
【问题讨论】: