首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSNumberFormatter故障

NSNumberFormatter故障
EN

Stack Overflow用户
提问于 2015-04-19 18:29:18
回答 1查看 214关注 0票数 0

我有个奇怪的问题。它似乎只出现在测试人员的iPhone 5s上。它在iPhone 5、6和6+上正确工作,它们都运行着最新的iOS (8.3)。

这是密码

代码语言:javascript
复制
-(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,它是正确的显示也。

谢谢

卢克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-19 19:19:27

如果您的目标是每三个字符就有一个逗号,那么您所需要做的就是:

代码语言:javascript
复制
    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以获得简短的、高级别的概述。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29734042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档