2

これは私が持っているコードです:

int resultInt = [ja.resultCount intValue];
float pages = resultInt / 10;


NSLog(@"%d",resultInt);
NSLog(@"%.2f",pages);

resultInt は値 3559 で php スクリプトから返されるため、ページの結果は 355.9 になるはずですが、正しくない 355.00 として結果が得られます

4

2 に答える 2

1

使用する

float pages = resultInt / 10.0f;

int/intであるint _ int/float_float/intfloat


詳細説明のために編集

算術演算の結果の値は、受け取る変数のデータ型の規則に従うことに注意してください。除算演算の結果は、浮動小数点値になる場合があります。ただし、整数に代入すると、小数部分が失われます。同様に重要であり、それほど明白ではありませんが、複数の整数に対して実行され、非整数に割り当てられた操作の影響です。この場合、結果は暗黙的に変換される前に整数として計算されます。つまり、結果の値は浮動小数点変数に割り当てられますが、少なくとも 1 つの値が最初に明示的に変換されない限り、小数部分は切り捨てられます。次の例は、これを示しています。

int a = 7;
int b = 3;
int integerResult;
float floatResult;

integerResult = a / b;          // integerResult = 2  (truncated)
floatResult = a / b;            // floatResult = 2.0  (truncated)
floatResult = (float)a / b;     // floatResult = 2.33333325
于 2012-12-20T15:46:41.950 に答える
1

これは、浮動小数点ではなく整数を使用しているという事実に関係しています。使用している変数に float であることを伝えれば完了です。

int resultInt = [ja.resultCount intValue];
float pages = (float)resultInt / 10.f;
于 2012-12-20T15:47:47.167 に答える