これが発生する理由を理解するのに苦労しています:次のコードで。
#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;
}
x の新しい値として 45678 を入力すると、「x is 123.000017」が出力されます。スキャン時に %lf を使用するとこれが修正されることはわかっていますが、%f を使用するとこの問題が発生するのはなぜですか?