-1

重複の可能性:
C での整数除算の動作は何ですか?

1 と 0 の間のはずの答えで割り算をすると、必ず 0 が返ってきます。

これを試して:

float a = 1;
float b = 2;
float c = a / b; //variable divide by variable gives 0.5 as it should
float d = 1 / 2; //number divide by number gives 0
float e = 4 / 2;
NSLog(@"%f %f %f %f %f", a,b,c, d, e);

コンソールからこれを取得します:

2013-01-17 14:24:17.512 MyProject[1798:c07] 1.000000 2.000000 0.500000 0.000000 0.500000

何が起こっているのかわかりません。

4

1 に答える 1

6

整数を整数で割っています。結果は整数になり、残りは省略されます。

1 / 2 = 0     The remainder (0.5) is omitted.

float d除算が完了した後でのみ、結果が変数に渡されます。

編集:そうです、解決策を提案するのを忘れていました:オペランドの少なくとも1つが浮動小数点数であることを確認してください。

1.0 / 2 = 0.5    

1 / 2.0 = 0.5
于 2013-01-17T01:36:03.330 に答える