浮动只打印整数?

时间:2012-06-27 14:38:37

标签: iphone objective-c ios cocoa-touch sdk

为什么当我在循环中运行此代码时,只在控制台中打印整数?

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

3 个答案:

答案 0 :(得分:4)

问题出在这里

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

而不是40,2,7你应该使用40.0,2.0,7.0

还要确保ZombieSpeed是浮点型

答案 1 :(得分:2)

此行需要使用Float值(40.0,2.0,7.0)

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

答案 2 :(得分:1)

除法是整数除法,使用显式小数点作为40.0或类型转换,因此至少有一个操作数是浮点数,它将整个表达式向上转换为浮点数。确保为计算机分配的左侧变量是具有相等或更大宽度的浮点类型(以保持精度)。