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

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

编辑:我知道那里有职位,但他们似乎都没有解决双精度数/浮点数/以零结尾的字符串的问题。例如,如果我的双精度数为16.00,则格式化程序会将其格式化为16。1234.80也一样。格式化程序会将其格式化为1,234.8,而不是1,234.80,这就是我想要的。

最佳答案

查看有关NSNumberFormatting here的帖子

其主旨是将float或double转换为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'

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

关于ios - 在浮点数或字符串中添加逗号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19917858/

10-13 05:08