2012-04-30 4 views
0

В настоящий момент приложение само записывает реплики в определенном спортивном матче. Она захватывает информацию путем обновления через UIStepper который будет обновлять UILabel «S 1, 2, 3 ... и т.д.Почему процент UILabel показывает «nan%»

Однако, когда я нажимаю„минус“на UIStepper изменить UILabel обратно к нулю, UILabel с правой стороны от UIStepper, в котором показаны проценты отображений сигналов «nan%». См. прикрепленное изображение.

enter image description here

Почему он это делает?

Код для процентных этикеток

self.smashPercentageLabel.text = [NSString stringWithFormat:@"%.2f%%",([self.smashLabel.text floatValue]/self.rallies)*100]; 

Спасибо.

ответ

4

Чтобы проверить, можно ли использовать метод isnan().

И потом, если это нан то просто yourVar = 0;

пример:

double test = NAN; 
if(isnan(test)) 
    NSLog(@"YES, it is a NAN!"); 

EDIT:

if(isnan([self.smashLabel.text floatValue])) 
     self.smashPercentageLabel.text = [NSString stringWithString:@"0%"]; 
else 
     self.smashPercentageLabel.text = [NSString stringWithFormat:@"%.2f%%",([self.smashLabel.text floatValue]/self.rallies)*100]; 

это должно сделать трюк, если не пытаться изменить floatValue к doubleValue

+0

Извините, как я могу это реализовать? Я не уверен. Благодарю. –

+0

Я не знаю, как выглядит ваш код, но простой пример: double test = NAN; if (isnan (тест)) NSLog (@ "ДА, это NAN!"); Таким образом, вы должны передать значение (ваш nan от UILabel) до if (isnan (value_from_ui_label)), а затем вы можете обработать действие на нем. Я только что отредактировал свой ответ. Там код выглядит чище. – Kuba

+0

Привет, SimpleMan, я опубликовал код, который обновляет одну из процентных меток. Как я могу изменить nan на «0»? Благодарю. –

1

[NSString stringWithFormat:@" %i%%",averageValue] ;

Показать процент с ценным кодом