NSLog(@"Number: %f", [self calculateScore]);
- (CGFloat)calculateScore {
CGFloat score;
score = (_bestPossibleMove/_movesMade) * 5.0;
return score;
}
所以我有2个实例变量_bestPossibleMove和_movesMade。前者从一开始就设为6.0,后者在比赛结束时为16.0。当我到达NSLog消息时,调用[self calculateScore]会给我0.0000,当它应该给我一个略小于5.0且大于0.0的数字。有什么理由吗?
答案 0 :(得分:0)
以下答案可以帮助您Float is 0 after integer division
所以我们只将一个转换为浮点数(_bestPossibleMove * 1.0)
score = (_bestPossibleMove*1.0/_movesMade) * 5.0;
答案 1 :(得分:0)
当_bestPossibleMove的值大于_movesMade的值时,/(devision)返回0.so它返回0.00000。