我无法理解为什么会发生这种情况:使用以下代码;
#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 时会出现这种情况?