Происходит следующее: -[NSString doubleValue]
не может проанализировать строку "1,00000", останавливаясь на запятой, и возвращает "1". Вместо этого вы должны просто отформатировать number
в соответствии с вашими потребностями. Сконфигурируйте formatter
в нужном формате и используйте его для получения окончательной строки. Не заменяйте никакие символы вручную, если вы можете положиться на структуру.
РЕДАКТИРОВАТЬ: полный пример кода
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSNumber* number = [currencyFormatter numberFromString:strPrice];
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setPositiveFormat: @"#.00"];
NSLog(@"%@ %@", number, [formatter stringFromNumber: number]);
На моей машине с текущей локалью я получаю:
1000 1000,00