[英]NSNumberFormatter glitch
我有一个奇怪的问题。 它似乎只出现在测试人员的iPhone 5s上。 它可以在运行最新iOS(8.3)的iPhone 5、6和6 plus上正常运行。
这是代码
-(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 5s上却像这样显示
我以为setMaximumSignificantDigits
可以将其扼杀在萌芽状态,但它仍显示相同的内容。 这可能是一些奇怪的本地化问题吗? 我不认为这是因为他的iPhone 6也能正确显示。
谢谢
卢克
如果您的目标是仅使每三个字符使用逗号,那么您要做的就是:
NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber * numberFromString = [numberFormatter numberFromString:currentTextWithoutCommas];
NSString * formattedNumberString = [numberFormatter stringFromNumber:numberFromString];
如果发现格式化程序本地化存在问题,则将secondaryGroupingSize
设置为3。如在NSNumberFormatter
文档中所写:
一些语言环境允许为更大的数字指定另一个分组大小。 例如,某些语言环境可能表示61、242、378.46(例如在美国)为6,12,42,378.46。 在这种情况下,辅助分组大小(覆盖距离小数点最远的数字组)为2。
另外,您可以在iOSDeveloperTips上查看格式化数字 ,以获取简要的高级概述。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.