当我执行以下代码时,它有一个问题:
float number = 999999999;
printf("%lf", number);
Run Code Online (Sandbox Code Playgroud)
结果是10000000000而不是999999999.
为什么不呢999999999?
典型float可以准确地表示大约2 32个不同的数字,如1234.0和-0.125. 999999999不是其中之一. 10000000000.0f是最接近的float选择.
在赋值期间发生了近似
float number = 999999999; // Really assigned 10000000000.0f
Run Code Online (Sandbox Code Playgroud)