代码之家  ›  专栏  ›  技术社区  ›  Kenny Winker

在方法之间传递时,float被损坏(类型转换问题?)

  •  0
  • Kenny Winker  · 技术社区  · 15 年前

    我无法将浮点值从一个对象传递到另一个对象。在第一种方法中它看起来不错,但在第二种方法中它的价值是巨大的。我想这是我打字的一个问题,因为这是我最了解的事情。非常感谢您的帮助!

    在我的游戏控制器中,我执行以下操作:

    float accuracy = (float)hitCount/(float)(hitCount+missCount);
    NSLog(@"GameController - hits: %i misses: %i enemies: %i accuracy: %f", hitCount, missCount, escapedCount, accuracy);
    [delegate postGameWithScore:roundScore andAccuracy:accuracy];
    

    -(void)postGameWithScore:(NSInteger)score andAccuracy:(float)accuracy {
        cumulativeScore += score;
        NSLog(@"GameMaster - score: %i accuracy %f",cumulativeScore, accuracy);
        /* non relevant code clipped */
    }
    

    GameController - hits: 14 misses: 54 enemies: 35 accuracy: 0.205882
    GameMaster - score: 3800 accuracy 36893488147419103232.000000
    

    我不明白为什么 accuracy 在第二个NSLog中不正确。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Kenny Winker    15 年前

    !! 解决了。

    将此添加到我的代理标题中修复了它:

    -(void)postGameWithScore:(NSInteger)score andAccuracy:(float)accuracy;