作者nerv3890 (nerv3890)
看板Programming
标题[问题] 关於运算出的结果,小数点都消失问题...
时间Wed Oct 21 17:45:58 2009
如题
小的碰到了很怪的麻烦
先奉上程式码
#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)
1F:推 legendmtg:1.0/(i*2)+1 140.138.16.212 10/21 18:20
2F:→ nerv3890:感谢解答 但我好疑惑为何加个.0就成功了140.112.241.126 10/22 22:24
3F:推 Bencrie:型态问题 ... 没 .0会变成int,小数会删掉 140.121.197.32 10/22 23:19