float становится искаженным при переходе между методами (проблема с типизацией?) - PullRequest
0 голосов
/ 09 января 2010

У меня проблемы с передачей значения с плавающей точкой от одного объекта к другому. Похоже, что это хорошо в первом методе, но во втором его значение огромно. Я предполагаю, что это какая-то проблема с моей типизацией, потому что это то, что я понимаю, самые бедные Помощь очень ценится!

В моем игровом контроллере я делаю это:

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 Ответ

1 голос
/ 09 января 2010

!! решил это.

Добавление этого в заголовок моего делегата исправило это:

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

Не знаю, почему это исправили, но это научит меня обрабатывать предупреждения компилятора как предупреждения вместо ошибок.

...