我有个奇怪的问题。它似乎只出现在测试人员的iPhone 5s上。它在iPhone 5、6和6+上正确工作,它们都运行着最新的iOS (8.3)。
这是密码
-(NSString *) commaString:(double)number
{
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
[numberFormatter setGroupingSize:3];
[numberFormatter setMaximumSignificantDigits:9];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble: number]];
return numberAsString;
}这个应用程序是一个计算器,通常是这样正确显示的。
它通常是这样正确地显示。

但是在这个iPhone 5上,它是这样显示的

我以为setMaximumSignificantDigits会把它扼杀在萌芽阶段,但它仍然在展示同样的东西。这会是什么奇怪的本地化问题吗?我不认为这是作为他的iPhone 6,它是正确的显示也。
谢谢
卢克
发布于 2015-04-19 19:19:27
如果您的目标是每三个字符就有一个逗号,那么您所需要做的就是:
NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber * numberFromString = [numberFormatter numberFromString:currentTextWithoutCommas];
NSString * formattedNumberString = [numberFormatter stringFromNumber:numberFromString];如果您发现本地化格式化程序有问题,那么将secondaryGroupingSize设置为3。
一些地区允许为更大的数字指定另一个分组大小。例如,一些地区可能代表一个数字,如61,242,378.46 (如在美国)为6,12,42,378.46。在这种情况下,次要分组大小(涵盖离小数点最远的数字组)为2。
此外,您还可以查看格式编号 on iOSDeveloperTips以获得简短的、高级别的概述。
https://stackoverflow.com/questions/29734042
复制相似问题