2013-11-15 43 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