1

我正在使用一个商业第三方库,它对屏幕上显示的数字格式非常严格。

格式化只能通过您可以自定义labelFormatString每个系列上调用的字符串来完成,例如:

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

就像printf/NSString stringWithFormat

当然,现在我的要求强加给我最后的调整,我无法弄清楚而不是显示$123456789我必须显示它们$123,456,789

如果可能的话,是否只使用上面提到的字符串而不是其他(没有NSNumberFormater等)来实现这一点。

谢谢

杰森

4

2 回答 2

2

@zahreelay 他说没有格式化程序,因为他不能使用它们。我认为这是不可能的,因为格式化取决于语言环境和其他一些东西,而 obj-c 字符串格式化与 printf 的格式化规范并不完全相同。即使使用 printf 进行千次分离,您也必须设置一些语言环境:

setlocale(LC_ALL, "");
unsigned int x = 12345u;
printf("%'8u\n", x); //prints 12,345

但不幸的是,这不适用于 NSLog for ex。(刚刚测试过)

于 2012-05-11T09:16:33.683 回答
-1

看看 NSNumberFormatter 类,我相信,你可以使用它来实现它。

例如

NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; // this line is important!

NSString *formatted = [formatter stringFromNumber:[NSNumber numberWithInteger:2000000]]

[formatter release];
于 2012-05-11T09:12:00.347 回答