如果我有一个数字int aNum = 2000000
,我如何格式化它,以便我可以将它显示为NSString 2,000,000?
发布于 2010-02-10 09:39:08
不要自己设置数字格式。您几乎肯定不会正确处理所有的边缘情况或正确处理所有可能的语言环境。使用NSNumberFormatter
将数字数据格式化为本地化字符串表示形式。
您可以使用NSNumberFormatter
实例方法-setGroupingSeparator:
将分组分隔符设置为@","
(或者更好的设置为[[NSLocale currentLocale] objectForKey:NSLocaleGroupingSeparator]
;感谢@ntesler),并使用-setGroupingSize:
将分组分隔符设置为每3位数一次。
发布于 2011-12-14 14:13:22
使用NSNumberFormatter
。
具体地说:
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; // this line is important!
NSString *formatted = [formatter stringFromNumber:[NSNumber numberWithInteger:2000000]];
[formatter release];
默认情况下,NSNumberFormatter
使用当前区域设置,因此分组分隔符默认设置为正确的值。关键是要记住设置一个数字样式。
发布于 2012-09-05 01:51:04
有一个static method on NSNumberFormatter
可以做你需要的事情:
int aNum = 2000000;
NSString *display = [NSNumberFormatter localizedStringFromNumber:@(aNum)
numberStyle:NSNumberFormatterDecimalStyle];
如果不需要对格式化程序进行任何额外的配置,这种方法比创建一个新的NSNumberFormatter
更简洁一些。
https://stackoverflow.com/questions/2233824
复制相似问题