2009-12-08 2 views
1

Ok, поэтому я потянув NSString из и NSMutableArray и хранить его в NSString:NSString - doubleValue возвращается NaN из жизнеспособного NSString

entry = [NSString stringWithString:[array objectAtIndex:row]]; 

Это обернута внутри пары различной для петель. Затем я конвертирую его в doubleValue и сохраняю его в количестве, но, по-видимому, [entry doubleValue] возвращает NaN вместо числа. Я бросил NSLog для 'entry' и '[entry doubleValue]'. КАЖДЫЙ раз я запускаю это, я получаю те же результаты:

entry: 22.414 value: nan 

Любые идеи? благодаря!

ответ

1

Если вы уверены, что там не любой другой символы в строках, посмотрите на класс NSScanner. Обычно он лучше справляется с чтением строк.

3

вы можете проверить, чтобы убедиться, что у вас нет пробелов и непечатаемых символов в entry

Самый простой способ сделать это:

NSLog(@"%@", [entry dataUsingEncoding:NSUTF8StringEncoding]); 
2

Да, я бы сказал, что это, вероятно, некоторые непечатаемые персонажи. Это отлично работает для меня:

NSString *test = @"22.414"; 
NSLog(@"doubleValue: %f", [test doubleValue]); 
1

Это может быть, что вы установили язык системы, где локаль говорит, что вы используете, например, вместо того, чтобы запятая из точки в качестве десятичного разделителя. Я не знаю, происходит ли это с двойной стоимостью, но у меня были проблемы с NSNumberFormater.

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