[課業] cout<<99999*3/2.0;

看板NTUE-CS101作者 (球童Yanting)時間17年前 (2008/11/20 23:11), 編輯推噓5(500)
留言5則, 4人參與, 最新討論串1/2 (看更多)
星期三檢查作業的時候 不小心試了一個數字 cout<<99999*3/2.0; 本來預估他是 149998.5 但很神奇的變成 149999 一時想不到原因 查了資料發現 在課本 14-12 頁 cout 預設顯示的有效位數只有 6 位數 99999*3/2.0 = 149998.5 float 的精確度有 7 位 ; double 是 14 位 但 cout 的精確度預設是 6 位 所以 149998.5 會四捨五入成 149999 解決的方法: cout.presicion(10); ( 大於6就好 ) cout<<99999*3/2.0; 這個東西僅供參考 之後檢查作業的時候不會去特別踹這個 不過這個就是一個經驗囉 以後寫嚴謹的程式要稍微注意一下 cout 是 C++ 新提供的物件 用 C 的輸出函數 printf("%f",99999*3/2.0); 的話可以正常輸出 149998.5 cout/cin 雖然比 printf/scanf 方便很多 不用管輸入格式 但他裡面其實幫我們做了我們很多不知道的事情 沒有查資料怎麼錯的都不知道 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.15.209

11/21 00:59, , 1F
原來是錯在這喔,話說PRINTF被COUT取代是因為格式唷?
11/21 00:59, 1F

11/21 11:24, , 2F
其實cout的執行速度比printf慢很多
11/21 11:24, 2F

11/21 13:58, , 3F
哇這是我們自己不會發現的 真酷阿
11/21 13:58, 3F

11/21 14:12, , 4F
其實printf應該沒被取代吧= =~還是有很多人用C寫程式
11/21 14:12, 4F

11/21 14:15, , 5F
1f沒有被取代 只是一種新的方法 依照設計者需求搭配
11/21 14:15, 5F
文章代碼(AID): #199NuZuz (NTUE-CS101)
文章代碼(AID): #199NuZuz (NTUE-CS101)