Рассмотрим этот код:
NSNumberFormatter *nf = [[NSNumberFormatter alloc] init];
nf.numberStyle = NSNumberFormatterCurrencyStyle;
NSLocale *l = [[NSLocale alloc] initWithLocaleIdentifier:@"it_IT"];
nf.locale = l;
[l release];
nf.decimalSeparator = @",";
nf.currencySymbol = @"US$";
[nf setLenient:YES];
NSString *s = @"US$ 0,05";
double d = [[nf numberFromString:s] doubleValue];
NSLog(@"%.2f",d);`
Если я выполню это в обычном консольном приложении Cocoa (10.6 sdk), я получу вывод «0.05» на консоль отладки.
Однако, если я выполню это в среде iPhone (OS 3.1.3), я получу вывод «0.00» на консоль отладки. Я делаю что-то не так с использованием NSNumberFormatter? Или это несоответствие между двумя платформами?