2014-01-12 27 views
0

我正在開發iOS 7應用程序。我是新開發人員,所以我不太瞭解它。resultLabel的本地化

這是代碼:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[formatter setGroupingSeparator:@"."]; 
[formatter setGroupingSize:3]; 
[formatter setUsesGroupingSeparator:YES]; 

NSString *postotakString = [postotak text]; 

float postotakFloat = [[postotakString stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue]; 

NSString *cijeliBrojString = [cijeliBroj text]; 

float cijeliBrojFloat = [[cijeliBrojString stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue]; 

float formulaPostotak = (cijeliBrojFloat/(postotakFloat/100)); 

[formatter setFormatWidth:2]; 
formatter.maximumFractionDigits = 2; 
formatter.minimumFractionDigits = 2; 

NSString *rez = [formatter stringFromNumber:[NSNumber numberWithDouble:formulaPostotak]]; 

[rezultat setText:rez]; 

return ; 

用戶輸入原價和折扣。在它打印標籤產生的格式是:1.000.000,00

我希望當用戶有基本的定位有這樣的格式:1,000,000.00併爲人們克羅地亞有這樣的:1.000.000,00

這可能嗎?我可以用if語句做到嗎?

在此先感謝。

+0

你用「基本本地化」定義用戶的是什麼?我不熟悉克羅地亞的規則和數字格式。該語言也會影響語言環境的數字格式。例如,fr_CA與en_CA的語言環境會產生兩種不同的數字格式。處理數字本地化的典型方法是讓NSNumberFormatter使用設備的當前區域設置,默認情況下它會執行該設置。 –

回答

1

使用數字格式的NSLocale屬性:

formatter.locale = [NSLocale currentLocale]; 

如果當前語言環境是克羅地亞,它會顯示的數字爲適當。

+0

無需設置爲當前語言環境。 NSNumberFormatter會自動使用當前的語言環境,除非您覆蓋它。 –