自定义格式化文本标签的字符串值

时间:2013-03-01 00:26:15

标签: ios ios6 nsstring string-formatting

在我的项目中,我有一个运行的函数,并在我的界面上向一个标签中输出一个5位数字。数字可以是double或float,但我希望它显示为### + ##。##

示例编号12345.67

显示为123 + 45.67

输出将始终为带小数的5位数字。我研究了数据格式,特别是数字格式,但没有遇到任何特定的情况。这是我将数字更改为字符串并将其分配给标签的位置。请提前帮助并感谢您的时间。

NSString *outputNumber = [NSString stringWithFormat:@"%f",numberHere];

_stationing.text = outputNumber;

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到。

NSMutableString *outputNumber = [[NSString stringWithFormat:@"%.2f", numberHere] mutableCopy];
[outputNumber insertString:@"+" atIndex:outputNumber.length - 5];

_stationing.text = outputNumber;

另:

int high = numberHere / 100;
float low = numberHere - (high * 100);
NSString *outputNumber = [NSString stringWithFormat:@"%d+%.2f", high, low];

如果数字小于100,这些方法将无效。

答案 1 :(得分:0)

希望这个帮助

NSStirng *numberString = [NSString stringWithFormat:@"%.2f",numberHere];

NSString *firstPart = [numberString substringWithRange:NSMakeRange(0, 3)];
NSString *secondPart [numberString substringWithRange:NSMakeRange(3, 5)];

NSString *outputString = [NSString stringWithFormat:@"%@+%@", firstPart, secondPart];

如果数字的格式不是永久性的,您应该先检查长度。