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 或类型转换,以便至少一个操作数是浮点数,它将整个表达式向上转换为浮点数。确保您分配计算机值的任何左侧变量都是具有相等或更大宽度的浮点类型(以保持精度)。

于 2012-06-27T14:41:19.147 回答