2012-05-27 42 views
0

我有這樣的代碼:如何格式化Objective-C中計算的最終結果數字?

double s = [year.text doubleValue]*31536000; 
second.text=[[NSString alloc] initWithFormat:@"%2g", s]; 

當我試圖計算出最終的結果是3.1536e+07

如何使結果不31536000e+07

+1

其實,爲什麼不使用'... initWithFormat:@ 「%F」,S]'? – 2012-05-27 05:29:59

回答

0

簡單使用%f。

NSString *str = [[NSString alloc] initWithFormat:@"%f", s]; 
second.text = str; 

second可能導致字符串沒有 「E + 07」

f是因爲我們工作瓦特/ floating point numbers

+0

'e','f','g'都是浮點數的格式字符串,其中有些不同。 – nhahtdh

2

%g的和%G轉換(分別地)打印的%e%E風格參數如果指數將是小於-4或大於或等於精度;否則他們使用%f風格。
您應該使用%f

double s = [year.text doubleValue]*31536000; 
second.text=[[NSString alloc] initWithFormat:@"%f", s]; 
0

你應該嘗試:

double s = [year.text doubleValue]*31536000; 
second.text=[[NSString alloc] initWithFormat:@"%lf", s];