2009-12-21 79 views
2

我得從法國數式串數目:@「30.000,00」 當我使用NSNumberFormattern解析解析語言環境特定字符串的編號?

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
NSNumber *priceNumberValue = [numberFormatter numberFromString:@30.000"]; 

它返回30,我的預期收益是30000 我嘗試使用其他選項

NSLocale *vnLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"]; 
[numberFormatter setLocale:vnLocale]; 

[numberFormatter setDecimalSeparator:@","]; 

,但它仍然會返回意外的值:30

什麼是正確的方式告訴NSNumberFormatter parse @「30.000,00」?

回答

3

設置區域應該工作,但你必須告訴的NumberFormatter使用分組分隔符:

[numberFormatter setUsesGroupingSeparator:YES]; 

如果不工作,下面肯定會工作:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
[numberFormatter setDecimalSeparator:@","]; 
[numberFormatter setGroupingSeparator:@"."]; 
[numberFormatter setUsesGroupingSeparator:YES]; 
NSNumber *priceNumberValue = [numberFormatter numberFromString:@"30.000,00"]; 

檢查完此後,「fr-FR」語言環境似乎沒有您期望的屬性。但是,使用「fr-BE」語言環境可以正常工作:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_BE"]; 
[numberFormatter setLocale:locale]; 
[locale release]; 
[numberFormatter setUsesGroupingSeparator:YES]; 
NSNumber *priceNumberValue = [numberFormatter numberFromString:@"30.000,00"];