[問題] 關於運算出的結果,小數點都消失問題...

看板Programming作者 (nerv3890)時間14年前 (2009/10/21 17:46), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/2 (看更多)
如題 小的碰到了很怪的麻煩 先奉上程式碼 #include "stdafx.h" #include "iostream" #include <iomanip> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int x=0; double a=0; for(int i=0;i<5000;i++){ if((x%2)==0) a = a + (1/((i*2)+1)); else a = a - (1/((i*2)+1)); x++; } cout << "π is:" << setprecision(8) << a << endl << endl; system("pause"); return 0; } a cout出來的結果是1 原本應該要是1.34........的 等於說小數點後都被省略 可是a是double,怎麼可能會這樣 我後來自己做過測試 我讓 a = 1/2 、 a = 1/3 cout出來的結果竟然都是0 真的不知道問題出在哪 希望有人能幫忙解答 萬事拜託了 <(_ _)> 謝謝 -- 嫂子 叫我鬍子就好了 _() ▃▄▅▄ 我會很有禮貌的 ( ﹎﹎ ) § ● ● = = ◥◤) ψmroscar 斗╯ | | 三明書局-你所不知道的關二哥 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.241.126 ※ 編輯: nerv3890 來自: 140.112.241.126 (10/21 18:03)

10/21 18:20, , 1F
1.0/(i*2)+1
10/21 18:20, 1F

10/22 22:24, , 2F
感謝解答 但我好疑惑為何加個.0就成功了
10/22 22:24, 2F

10/22 23:19, , 3F
型態問題 ... 沒 .0會變成int,小數會刪掉
10/22 23:19, 3F
文章代碼(AID): #1AtjXQL4 (Programming)
文章代碼(AID): #1AtjXQL4 (Programming)