NSLog浮点输出0.00000

时间:2016-04-29 20:45:32

标签: objective-c cgfloat

    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的数字。有什么理由吗?

2 个答案:

答案 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。