我知道有一种“硬”方式可以做到这一点(不是很难,但不是直接)。
我在标签中以百分比形式显示浮点值:
myLabel.text = [NSString stringWithFormat:@"%.1f%%", myFloat];
我想强制标签显示浮动的符号。当然,如果值为负,它会自动显示“ - ”。我知道我可以使用这种方法做到这一点:
-(NSString *) stringFromFloat: (float) theFloat {
if (theFloat > 0) return [NSString stringWithFormat: @"+%.1f%%", theFloat];
else return [NSString stringWithFormat: @"%.1f%%", theFloat];
}
但这意味着每次我需要显示浮点值时都会调用[self stringFromFloat:aFloat];
。我知道使用这个解决方案是“更好”,因为它会减少重复使用的行数,但如果我的标签不能显示相同的小数位数,stringFromFloat:
可能会快速增长......
所以我的问题是:有一种“简单”和标准的方法吗?像NSString格式化程序或什么?例如,将@"%.1f%%"
替换为@"%sign%.1f%%"
?
如果没有什么是直的,那么stringFromFloat:
是最好的解决方案吗?
谢谢!
答案 0 :(得分:4)
您不需要制作格式的标志部分 - 它可以参数化,如下所示:
myLabel.text = [NSString stringWithFormat:@"%@%.1f%%", myFloat<0 ? @"" : @"+", myFloat];
即使您想将其放入格式中,也可以在表达式中准备格式字符串:
myLabel.text = [NSString stringWithFormat:myFloat<0 ? @"%.1f%%" : @"+%.1f%%", myFloat];