正确的数字格式不适合西班牙语

时间:2013-08-29 11:28:35

标签: iphone nsnumberformatter

我使用下面的代码生成西班牙语的数字为€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]]];

有谁知道我为什么没有获得正确的格式?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您必须将NSNumberFormatterCurrencyStyle而不是NSNumberFormatterDecimalStyleCurrencySymbol设置为空以删除货币的符号。

工作代码:

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