2013-06-17 2 views
0

Мне нужно знать, что у int64_t есть десятичные числа и сколько. Это должно быть помещено в if-else-statement. Я пробовал этот код, но это приводит к сбою приложения.Int число десятичных чисел в iPhone

 NSNumber *numValue = [NSNumber numberWithInt:testAnswer]; 
     NSString *string = [numValue stringValue]; 
     NSArray *stringComps = [string componentsSeparatedByString:@"."]; 
     int64_t numberOfDecimalPlaces = [[stringComps objectAtIndex:1] length]; 
     if (numberOfDecimalPlaces == 0) { 
      [self doSomething]; 
      } else { 
      [self doSomethingElse]; 
      } 
+0

есть только один десятичный знак в любом месте ... wat является проблемой ура конкретно? – IronManGill

+0

Вот что я пытаюсь сделать: я использую arc4Random() для генерации двух случайных int64_t. Затем я проверяю, что первый случайный int больше второго. Затем я делю их и создаю testAnswer int. Теперь мне нужно проверить, имеет ли testAnswer десятичные значения и сколько. Если его слишком много, я буду регенерировать случайные ints. – imas145

ответ

0

Ваш вопрос не имеет большого смысла; вы создаете объект NSNumber из int, поэтому он не будет иметь десятичных знаков, так как int не может их сохранить. Причина, по которой ваш код сбой, заключается в том, что он предполагает, что массив компонентов всегда имеет длину не менее 2 элементов (поскольку вы используете objectAtIndex:1).

Это лучше, хотя все еще не так хорошо:

NSString *answer = ...; // From somewhere 
NSArray *stringComps = [answer componentsSeparatedByString:@"."]; 
if ([stringComps count] == 0) { 
    [self doSomething]; 
} else if [stringComps count] == 1) { 
    [self doSomethingElse]; 
} else { 
    // Error! More than one period entered 
} 

Это еще не очень хороший тест, как это только тесты, если период (.) был введен, а не действительное число.

+0

if ([stringComps length] == 0) уже дает мне ошибку, что ни один видимый @interface для «NSArray» не объявляет селектор «length» – imas145

+0

@ imas145 Appologies; это 'count', а не' length'. – trojanfoe

Смежные вопросы