我有這樣的代碼:如何格式化Objective-C中計算的最終結果數字?
double s = [year.text doubleValue]*31536000;
second.text=[[NSString alloc] initWithFormat:@"%2g", s];
當我試圖計算出最終的結果是3.1536e+07
如何使結果不31536000
e+07
?
我有這樣的代碼:如何格式化Objective-C中計算的最終結果數字?
double s = [year.text doubleValue]*31536000;
second.text=[[NSString alloc] initWithFormat:@"%2g", s];
當我試圖計算出最終的結果是3.1536e+07
如何使結果不31536000
e+07
?
簡單使用%f。
NSString *str = [[NSString alloc] initWithFormat:@"%f", s];
second.text = str;
的second
可能導致字符串沒有 「E + 07」
的f
是因爲我們工作瓦特/ floating point numbers。
'e','f','g'都是浮點數的格式字符串,其中有些不同。 – nhahtdh
%g
的和%G
轉換(分別地)打印的%e
或%E
風格參數如果指數將是小於-4或大於或等於精度;否則他們使用%f
風格。
您應該使用%f
。
double s = [year.text doubleValue]*31536000;
second.text=[[NSString alloc] initWithFormat:@"%f", s];
你應該嘗試:
double s = [year.text doubleValue]*31536000;
second.text=[[NSString alloc] initWithFormat:@"%lf", s];
其實,爲什麼不使用'... initWithFormat:@ 「%F」,S]'? – 2012-05-27 05:29:59