float abc = 20130401.0f;
NSLog(@"abc = %f",abc);
2013年4月8日15:47:38.963 CCLearnIphone [5034:C07] ABC = 20130400.000000
這是同樣使用雙。
如何表示八位數字?
我知道精度會丟失,但是.000000不應該是1.0000000。
%F應該是0.9xxxxx等
爲什麼它0.000000四捨五入爲1.000000?
float abc = 20130401.0f;
NSLog(@"abc = %f",abc);
2013年4月8日15:47:38.963 CCLearnIphone [5034:C07] ABC = 20130400.000000
這是同樣使用雙。
如何表示八位數字?
我知道精度會丟失,但是.000000不應該是1.0000000。
%F應該是0.9xxxxx等
爲什麼它0.000000四捨五入爲1.000000?
這是由於float
的精確度:約7位十進制數字。
爲什麼它0.000000四捨五入爲1.000000?
情況並非如此。 20130401四捨五入到20130400,因爲20130400是float
可表示的最接近的值。
爲什麼'浮動ABC = 19999991',打印到19999992.任何硬性和快速的規則,以便沒有計算機,我們可以告訴結果? – 2013-04-08 09:02:42
@AnoopVaidya如果沒有計算指數和尾數,很難判斷某個值是否可以用浮點類型精確表示。最簡單的經驗法則是:少於7個十進制數字。 – 2013-04-08 09:06:45
下面是一個IEEE 754轉換器,顯示任何輸入數字的二進制和十進制表示形式:http://www.h-schmidt.net/FloatConverter/ – 2013-04-08 09:09:55
你的電話號碼是一個浮動的VAR太HIGHT所以你必須改變它像雙和小數點後您的號碼
double abc = 20130401.0;
NSLog(@"abc = %f",abc);
的末尾刪除「F」字你要多少位? – Pratik 2013-04-08 08:48:37
如果您需要更高的精度,請使用'double'。你可以在這裏看到類似的答案:http://stackoverflow.com/questions/5098558/float-vs-double-precision – Alladinian 2013-04-08 08:49:25
使用NSLog(@「abc =%.2f」,abc);你會得到20130400.00 – Pratik 2013-04-08 08:50:58