我使用下面的代码生成西班牙语的数字为€1.000.000,00,但我得到€1,000,000.00。我使用es_ES作为区域设置ID。
NSNumberFormatter *frm=[[NSNumberFormatter alloc] init];
[frm setNumberStyle:NSNumberFormatterDecimalStyle];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"es_ES"];
[frm setLocale: locale];
NSString *symbol = [locale objectForKey:NSLocaleCurrencySymbol];
[frm setCurrencySymbol:[locale objectForKey:NSLocaleCurrencySymbol]];
NSString *formattedAmt= [frm stringFromNumber:[NSNumber numberWithDouble:[amount doubleValue]]];
有谁知道我为什么没有获得正确的格式?
提前致谢!
答案 0 :(得分:0)
您必须将NSNumberFormatterCurrencyStyle
而不是NSNumberFormatterDecimalStyle
和CurrencySymbol
设置为空以删除货币的符号。
工作代码:
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setCurrencySymbol:@""];
[currencyFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"es_ES"]];
NSLog(@"Final Value :: %@", [currencyFormatter stringFromNumber:[NSNumber numberWithFloat:1000000]]);
输出(如您所愿,没有货币符号):
最终价值:: 1.000.000,00