2013-08-29 2 views
0

Я использую код ниже, чтобы сгенерировать номер для испания как € 1.000.000,00, но я получаю € 1,000,000.00. Я использую es_ES как идентификатор локали.Правильный формат номера не подходит для испанского

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

Что происходит если вы используете 'NSNumberFormatterCurrencyStyle'? –

+0

Я добавил ниже, пожалуйста, обратитесь к моему ответу. –

+0

Отметьте мой ответ. Вы должны 'setCurrencySymbol'' @ "" '. – Bhavin

ответ

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]]); 

Output (Как вы хотите без Currency Symbol):

Итоговое :: 1.000.000,00

+0

Спасибо, что работает. –