我必须从 France-number-style 字符串中获取号码:@"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 解析 @"30.000,00"的正确方法是什么?
最佳答案
设置区域设置应该可以,但您必须告诉数字格式化程序使用分组分隔符:
[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"];
关于iphone - 从特定于区域设置的字符串中解析数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1939507/