gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:06:11 25 4
gpt4 key购买 nike

我在将浮点值从一个对象传递到另一个对象时遇到问题。第一种方法看起来不错,但第二种方法它的值(value)是巨大的。我认为这是我的类型转换的某种问题,因为这是我理解最差的事情。非常感谢您的帮助!

在我的游戏 Controller 中,我这样做:

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];

它在游戏 Controller 的委托(delegate)中调用此方法:

-(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

我不明白为什么第二个 NSLog 中的准确度不正确。

最佳答案

!!解决了。​​

将此添加到我的委托(delegate)的 header 中修复了它:

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

不知道为什么会修复它,但这会教我将编译器警告视为警告而不是错误。

关于iphone - 在方法之间传递时 float 被破坏(类型转换问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2034874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com