我有一个简单的UILabel
,字符串和变量x
(double)。
我输出
NSString *string = [NSString stringWithFormat:@"%15.10g", x];
[newlabel setText:string];
例如我有x = 555444333
,所以在标签中有一个" 55544433 "
结果(obv)。
我需要像" 555 444 333 "
一样输出它(就像在计算器中一样),是否有一些简单的方法可以做到这一点?
答案 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