→ Mercury0625:可是我只會C++寫法,C寫法看不懂...能告訴我原理嗎? 03/24 17:02
※ 引述《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