如何将数字分成3个部分

时间:2014-01-28 13:35:49

标签: ios string uilabel

我有一个简单的UILabel,字符串和变量x(double)。 我输出

NSString *string = [NSString stringWithFormat:@"%15.10g", x];
[newlabel setText:string];

例如我有x = 555444333,所以在标签中有一个" 55544433 "结果(obv)。

我需要像" 555 444 333 "一样输出它(就像在计算器中一样),是否有一些简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以使用NSNumberFormatter将groupingSeparator设置为包含单个空格且groupingSize = 3的字符串:

int x = 35464546;//the value of your int x
NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setGroupingSeparator:@" "];
[formatter setGroupingSize:3];
NSString *string = [formatter stringFromNumber:[NSNumber numberWithInt:x];
[newlabel setText:string];

我在示例中使用了一个int,因为虽然你说x是double,但你把它描述为int 555444333.如果你需要使用双重更改代码:[NSNumber numberWithDouble:(double)yourDoubleValue]

答案 1 :(得分:2)

有很多方法可以做到这一点,例如通过创建NSNumberFormatter - 这可能是一个“简单”的解决方案。

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setPositiveFormat:@"### ### ###"];
NSString *formattedNumberString = [numberFormatter stringFromNumber:@55544433];

NSNumberFormatter正在接受NSNumber,因此请将包装数值放入NSNumber [NSNumber numberWithInteger:yourInteger],并将内容@ 55544433替换为NSNumber