2013-11-15 33 views
0

我正在制作一个计算器,我得到的结果将会非常小或非常大。那么,如何将结果更改为 ,其中Vout被定义为浮点数。如何打印1.5Kv而不是1500 V?

Vout=1500; 
self.myOutputValue.text = [NSString stringWithFormat:@"%.2f V",Vout]; 

这将打印1500.00 Volts 我应该怎么做才能得到它的打印1.5 KV

self.myOutputValue.text = [NSString stringWithFormat:@"%( ???? ) KV",Vout]; 
+4

将它除以1000? – Sascha

+1

self.myOutputValue.text = [NSString stringWithFormat:@“%。1f kV”,Vout/1000]; ...不是?无论是这个,还是我不明白这个问题......或者如果你想要两个都有,那么在使用第二个版本之前检查一下,如果vout是否大于1000 ... –

+0

这很容易,但我想知道是否有什么东西可以让你指定左边的小数? – user2988343

回答

2

如果你喜欢使用工程格式(即100个递增向上和向下)的概念有在github上的C/ObjectiveC中是一个不错的例程:EngineeringNotationFormatter。它会让你指定显示的有效位数,所以如果你选择了三位,你将得到125K,12.5K或1.25K。它还可以让你以最小的可能增量向上或向下递增数字(如果你将班级联系起来说一个旋转的增量/减少量,那么这个功能很有用)。

2
NSString *str = nil; 
if (Vout >= 1000.0) 
{ 
    str = [NSString stringWithFormat:@"%.1f KV",Vout/1000.0]; 
} 
else 
{ 
    str = [NSString stringWithFormat:@"%.2f V",Vout]; 
} 
self.myOutputValue.text = str; 
+0

如果您需要处理更多的数量级,请查看对数函数,例如。 'log(1000)= 3'。将日志舍入到3的下一个倍数,然后你将有你的乘数(3 = K,6 = G,9 = T,...) – Cyrille

+0

谢谢我知道,我想知道是否有什么会允许你指定左边多少位小数? – user2988343

+0

你能告诉我一个例子,如果我将使用日志?请 – user2988343