1

我一直在尝试找到一种方法来找到将逗号附加到字符串或浮点数的方法。我有一个浮点数,它可以是 10.50 到 50000000000.99 之间的任何值,并且希望能够对其进行格式化以在每 3 位数字中添加逗号(不包括浮点数)。我知道有一个 NSNumberFormatter 可以使用 NSNumberFormatterDecimalStyle 或 NSNumberFormatterCurrencyStyle 但它们都不适用于字符串/浮点数。我试图将浮点数分成两个字符串,然后尝试进行长度百分比 == 3 的计算,但它开始变得非常混乱。我在 Java 中做了类似的事情,但在 iOS 中似乎要困难得多。

如果有人有任何建议或想法?任何信息或指导表示赞赏!提前致谢。

编辑:我知道那里有帖子,但似乎没有一个可以解决以零结尾的双精度/浮点数/字符串的问题。例如,如果我有一个双精度为 16.00,格式化程序会将其格式化为 16。对于 1234.80 也是如此。格式化程序会将其格式化为 1,234.8 而不是 1,234.80,这就是我正在寻找的。

4

2 回答 2

3

在此处查看有关 NSNumberFormatting 的帖子

它的要点是将浮点数或双精度数转换为 NSNumber,然后使用 NSNumber 上的 NSNumberFormatter 来获取具有所需格式的 NSString。就像是:

double doubleNum = 1000.002;

// Change double to nsnumber:
NSNumber *num = [NSNumber numberWithDouble:doubleNum];

// Set up the formatter:
NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];
[numFormatter setUsesGroupingSeporator:YES];
[numFormatter setGroupingSeparator:@","];
[numFormatter setGroupingSize:3];

// Get the formatted string:
NSString *stringNum = [numFormatter stringFromNumber:num];

NSLog(@"%@",stringNum);
// prints out '1,000.002'

试一试,您可以应用许多不同的格式设置。

于 2013-11-11T23:30:29.670 回答
0

阅读Apple 的格式化数字指南NSNumberFormatter支持千位分隔符和小数部分。例如,请参阅参考文档中的清单 1。

于 2013-11-11T23:29:59.030 回答