1

このコードをループで実行すると、コンソールに整数のみが出力されるのはなぜですか?

for (int i = 1; i <= 50; i++) {
        zombieSpeed[i] = (((arc4random()%40)+2)/7);
        NSLog(@"%f", zombieSpeed[i]);
}
4

3 に答える 3

4

問題はここにあります

zombieSpeed[i] = (((arc4random()%40)+2)/7);

40、2、7の代わりに、40.0、2.0、7.0を使用する必要があります

また、ZombieSpeedがフロートタイプであることを確認してください

于 2012-06-27T14:39:47.603 に答える
2

この行はFloat値(40.0、2.0、7.0)を使用する必要があります

zombieSpeed[i] = (((arc4random()%40)+2)/7);
于 2012-06-27T14:41:06.293 に答える
1

除算は整数除算であり、明示的な小数点を40.0または型キャストとして使用します。これにより、少なくとも1つのオペランドが浮動小数点になり、式全体が浮動小数点として評価されます。コンピューターの値を割り当てる左側の変数が、(精度を維持するために)同じかそれ以上の幅の浮動小数点型であることを確認してください。

于 2012-06-27T14:41:19.147 に答える