为什么我的999999999的浮动变成10000000000?

时间:2016-12-28 16:51:18

标签: c floating-point

当我执行以下代码时,它有一个问题:

float number = 999999999;
printf("%lf", number);

结果为10000000000而不是999999999

为什么不是999999999

1 个答案:

答案 0 :(得分:8)

Typical float可以完全代表2 32 不同的数字,如1234.0和-0.125。 999999999不是其中之一。 10000000000.0f是最接近的float替代方案。

在分配期间发生了近似值

float number = 999999999;  // Really assigned 10000000000.0f