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

出力:

0.000000

どうしてこうなった!

win 7でpelles cideを使用しています。

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;

1 つの数値を float にすると、他の数値 ti float が自動的に昇格し、最終的に浮動小数点の結果になります。

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

変数は整数値で初期化されます。float 値が必要であることをコンパイラーに伝えるには、浮動小数点を追加する必要があります。

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