2010-04-27 43 views
0

我需要在绘图轴上显示数字。值可能会改变,但我想避免太长的数字,这会破坏图的可读性。 我的想法是将每3个字符分组,并用K,M等(或自定义字符)替换它们。 所以: 1 - > 1, 999 - > 999, 1.000 - > 1K, 1.200 - > 1.2K, 1.280 - > 1.2K, 12.800 - > 12.8k, 999.999 - > 999.9k, 1.000.000 - > 1M, ...NSNumberFormatter显示10^n(10000 - > 10k)的自定义标签

请注意,可能我只需要格式化整数(1,10,1000,1500,2000,10000,20000,30000,100000,...) 。 这可能与NSNumberFormatter?我看到它有一个setFormat方法,但我不知道它有多少可定制的。

我正在使用NSNumberFormatter导致我使用的图形对象希望它设置标签格式,我想避免更改我的数据以设置标签。

回答

0

不,您可以得到最接近的是科学记数法。看看here为如何创建一个格式。虽然你可以很容易地做k,M等替换。

+0

,它是自动根据数据,以便手动替换(即使它不聪明)不能完成。 但是,感谢科学记数法信息。 – 2010-04-28 06:36:49

2

您可以使用此代码:

let formatter = NSNumberFormatter() 
formatter.multiplier = 0.001 
formatter.positiveFormat = "#,###k" 
formatter.zeroSymbol = "0" 
return formatter 

它帮助我的货币值转换:正如我所说的标记方法需要格式化

2000 -> 2k 
10000 -> 10k