我使用的商业第三方库对屏幕上显示的数字格式设置非常严格。
只能通过在每个系列上自定义名为labelFormatString
的字符串来完成格式化,例如:
donutSeries.labelFormatString = @"$%.02f";
就像printf/NSString stringWithFormat
。
当然,现在我的要求给我带来了一个我无法弄清楚的最终调整
而不是显示$123456789
我必须显示它们$123,456,789
如果可能只使用上面提到的字符串和NOTHING ELSE(没有NSNumberFormater
等)来实现这一点。
由于
杰森
答案 0 :(得分:2)
@zahreelay他说没有格式化,因为他不能使用它们。我认为这是不可能的,因为格式取决于区域设置和其他一些东西和obj-c字符串格式与printf的格式规范不完全相同。即使使用printf进行千分离工作,您也必须设置一些语言环境:
setlocale(LC_ALL, "");
unsigned int x = 12345u;
printf("%'8u\n", x); //prints 12,345
但不幸的是,这不适用于NSLog for ex。 (刚试过它)
答案 1 :(得分:-1)
This is what you are looking for 在询问新问题之前,最好先查看旧的SO问题。
答案 2 :(得分:-1)
看看NSNumberFormatter类,我相信,你可以用它实现它。
e.g。
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; // this line is important!
NSString *formatted = [formatter stringFromNumber:[NSNumber numberWithInteger:2000000]]
[formatter release];