带有颗粒的怪异输出c

时间:2012-04-25 16:53:33

标签: c pelles-c

float f=44268/107402;
printf("\n%f",f);

输出:

  

0.000000

这怎么可能发生!

我在win 7上使用了pelles c ide。

3 个答案:

答案 0 :(得分:5)

编译器将操作数视为整数。尝试:

float f = 44268.0 / 107402;
                ^

或者

float f = (float)44268 / 107402;

答案 1 :(得分:2)

Integer division truncates

float f=44268.0/107402;

使一个数字浮动将自动提升另一个数字ti float,最终以浮点结果结束。

答案 2 :(得分:0)

float f = 44268 / 107402;

变量将使用整数值初始化。你应该添加一个浮点,向编译器说你想要一个浮点值。

float f = 44268. / 107402.;