Objective - C Sting格式化就像printf / NSString stringWithFormat一样

时间:2012-05-11 08:51:26

标签: objective-c ios string numbers format

我使用的商业第三方库对屏幕上显示的数字格式设置非常严格。

只能通过在每个系列上自定义名为labelFormatString的字符串来完成格式化,例如:

donutSeries.labelFormatString = @"$%.02f";

就像printf/NSString stringWithFormat

当然,现在我的要求给我带来了一个我无法弄清楚的最终调整 而不是显示$123456789我必须显示它们$123,456,789

如果可能只使用上面提到的字符串和NOTHING ELSE(没有NSNumberFormater等)来实现这一点。

由于

杰森

3 个答案:

答案 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];