NSString中的数字值显示在错误的语言环境中

我从JSON解析NSString,然后将值显示在UILable中,该值包含数字,如@“12”,@“13”

现在当我这样做时:

self.lable.text =  @"12";

标签显示阿拉伯数字的值(12)

我试图解析JSON响应为NSNumber,然后使用NSNumberFormatter强制在下面的代码段中的“en_US”语言环境,但它不起作用。

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:0];
[numberFormatter setMinimumFractionDigits:0];
NSString *formattedNumberString = [numberFormatter stringFromNumber:number];
self.lable.text = formattedNumberString;

我的应用程序语言是“英语 - 开发语言”,在项目部分的信息选项卡下列出。

我正在运行应用程序的设备的区域设置为“美国”,并且该语言设置为“英语”

我试图运行[NSLocale currentLocale]来仔细检查,但我得到了“en_US”

我坚持这个问题,任何指针和帮助表示赞赏。


这很奇怪。 我不会强制本地,而是将其设置为设备的本地设置,并且可以如下设置字符串格式:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.locale = [NSLocale currentLocale];
numberFormatter.numberStyle = NSNumberFormatterDecimalStyle;
numberFormatter.maximumFractionDigits = 0;
self.label.text = [NSString StringWithFormat:@"%@", [numberFormatter stringForObjectValue:number]];

另一个建议是始终使用localizedStringFromNumber来确保字符串的正确本地行为:

NSString *formattedNumberString = [numberFormatter localizedStringFromNumber:number];

我希望它有帮助。

链接地址: http://www.djcxy.com/p/67361.html

上一篇: numeric values within NSString are displayed in a wrong locale

下一篇: iOS get locale based description of number