gpt4 book ai didi

ios - NSNumberFormatter 故障

转载 作者:行者123 更新时间:2023-11-29 02:06:35 27 4
gpt4 key购买 nike

我有一个奇怪的问题。它似乎只出现在测试者的 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;
}

该应用程序是一个计算器,通常会像这样正确显示

通常是这样正确显示的 enter image description here
但是在这个 iPhone 5s 上它是这样显示的 enter image description here

我认为 setMaximumSignificantDigits 会把它扼杀在萌芽状态,但它仍然显示相同。这可能是一些奇怪的本地化事情吗?我不认为他的 iPhone 6 也能正确显示。
谢谢
卢克

最佳答案

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

    NSNumberFormatter * numberFormatter = [[NSNumberFormatter alloc] init];
numberFormatter.numberStyle = NSNumberFormatterDecimalStyle;

NSNumber * numberFromString = [numberFormatter numberFromString:currentTextWithoutCommas];
NSString * formattedNumberString = [numberFormatter stringFromNumber:numberFromString];

如果您发现本地化格式化程序存在问题,请将 secondaryGroupingSize 设置为 3。如 NSNumberFormatter 的文档中所写:

Some locales allow the specification of another grouping size for larger numbers. For example, some locales may represent a number such as 61, 242, 378.46 (as in the United States) as 6,12,42,378.46. In this case, the secondary grouping size (covering the groups of digits furthest from the decimal point) is 2.

此外,您可以查看 Formatting Numbers有关 iOSDeveloperTips 的简要、高级概述。

关于ios - NSNumberFormatter 故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29734042/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com