我想用逗号格式化我的 UILabel,或者更好地使用美元符号和逗号(没有小数点)。
这是我正在使用的代码:
IBOutlet UILabel *labelrev
float rev = (x + y)
labelrev.text = [[NSString alloc] initWithFormat:@%2.f",rev];
我得到 xxxxxxxxx 作为我想要得到 xxx,xxx,xxx 或 $xxx,xxx,xxx 的输出
我该怎么做?
最佳答案
您绝对应该使用 NSNumberFormatter
为了这。基本步骤是:
此代码设置数字格式化程序。我已经做了你想要的一切,除了货币位。您可以在文档中查找。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *groupingSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator];
[formatter setGroupingSeparator:groupingSeparator];
[formatter setGroupingSize:3];
[formatter setAlwaysShowsDecimalSeparator:NO];
[formatter setUsesGroupingSeparator:YES];
接下来,您要设置您的号码并返回一个格式化的字符串。在您的情况下,我们在 NSNumber 中包装了一个 double。我是内联的,但你可以把它分成两个步骤:
NSString *formattedString = [formatter stringFromNumber:[NSNumber numberWithFloat:rev];
别忘了清理!
[formatter release];
关于本地化的简要说明:
NSLocale 类提供了一些关于用户语言环境的有用信息。在第一步中,请注意我如何使用 NSLocale 来获得本地化的分组分隔符:
NSString *groupingSeparator = [[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator];
(一些国家使用句号/句号,而其他国家使用逗号。)我认为也有一种方法可以获得本地化的货币符号,但我不是百分百确定,所以请查看文档。 (这取决于你想做什么。)
https://stackoverflow.com/questions/5406366/