2013-08-29 35 views
0

我使用下面的代碼爲西班牙語生成一個數字,例如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

會發生什麼如果你使用'NSNumberFormatterCurrencyStyle'? –

+0

我在下面添加,請參考我的答案。 –

+0

檢查我的答案。您必須將'SetCurrencySymbol'設置爲'@「」'。 – Bhavin

回答

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

+0

謝謝它正在工作。 –