iphone - 从特定于区域设置的字符串中解析数字?

标签 iphone

我必须从 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/

相关文章:

ios - 测试飞行应用程序与 libAVFAudio.dylib : AVAE_RaiseException(NSString*, 崩溃 ...) + 60

iphone - 如何将大 (60mb+) 图像保存到照片库?

iphone - 在后台应用程序中触发 didUpdateToLocation 时,我可以获得多少时间

iphone - UIRefreshControl beginRefreshing() 显示事件指示器,但它没有动画

iphone - 希望在 iPhone Storyboard应用程序中最大限度地重用

ios - 如何检测应用程序是否在越狱设备上运行?

iphone - 如何仅从右向左扩展 UIButton 宽度

iphone - 如何从 UITableViewCell 中的自定义按钮触发操作

ios - 从 JSON 响应中添加动态字段的最佳方式是什么

iphone - 在一个 View Controller 和 UAModalPanel 之间保留 View