[課業] cout<<99999*3/2.0;
星期三檢查作業的時候 不小心試了一個數字
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
11/21 00:59, 1F
推
11/21 11:24, , 2F
11/21 11:24, 2F
推
11/21 13:58, , 3F
11/21 13:58, 3F
推
11/21 14:12, , 4F
11/21 14:12, 4F
推
11/21 14:15, , 5F
11/21 14:15, 5F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):