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

输出 :

0.000000

怎么会这样!

我在win 7上使用pelles c ide。

4

3 回答 3

5

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

float f = 44268.0 / 107402;
                ^

或许

float f = (float)44268 / 107402;
于 2012-04-25T16:55:13.710 回答
2

Integer division truncates

float f=44268.0/107402;

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

于 2012-04-25T16:59:15.257 回答
0
float f = 44268 / 107402;

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

float f = 44268. / 107402.;
于 2012-04-25T16:57:43.760 回答