[問題] 關於運算出的結果,小數點都消失問題...
如題
小的碰到了很怪的麻煩
先奉上程式碼
#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
10/21 18:20, 1F
→
10/22 22:24, , 2F
10/22 22:24, 2F
推
10/22 23:19, , 3F
10/22 23:19, 3F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):