当我执行以下代码时,它有一个问题:
float number = 999999999;
printf("%lf", number);
结果为10000000000
而不是999999999
。
为什么不是999999999
?
答案 0 :(得分:8)
Typical float
可以完全代表2 32 不同的数字,如1234.0和-0.125。 999999999
不是其中之一。 10000000000.0f
是最接近的float
替代方案。
在分配期间发生了近似值
float number = 999999999; // Really assigned 10000000000.0f