看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Mercury0625 (水星)》之銘言: : 抱歉又是一個新手的問題...... : 關於double宣告變數,課本說有效位數15位,是代表整數+小數點+小數位共15位? : 還是有包含指數部分? 1.2345E+15 上面是 五位 : 以下為簡單程式碼(省略開頭) : double a = 1.23456789e+308; : cout<<b; : 結果是1.23457e+308 printf("%.22lE \n", a); 試試看 上面的指令 : 為什麼會四捨五入了?如果宣告是float我還能理解........ printf(); 比較好用 : 再來下一個程式碼 : double a = 1.234567; : cout<<"12345678901234567890"<<endl; : cout.precision(8); : cout<<a<<endl; : cout.width(20); : cout.setf(ios::scirntific,ios::floatield); : cout<<a<<endl; : 結果 : 12345678901234567890 : 1.234567 : 1.23456700e+000 : 後面那個00怎出來的呢@@?依照上一個程式碼,後面有四捨五入但這個沒有 如果你指定 LE, 就會跑出 1.2345E00 : 跟ios::scirntific,ios::floatield有關係嗎?想很久不懂 : 上學期計概太混,結果這個看不懂 ..... 請你重新 翻書,關於 整數,浮點數的 二進位表示方法, 2's 補數的 表示方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.138.70.247
Mercury0625:可是我只會C++寫法,C寫法看不懂...能告訴我原理嗎? 03/24 17:02