【发布时间】:2018-02-05 10:52:24
【问题描述】:
我试图制作一个 C++ 程序来使用 Leibniz formula. 计算 Pi 的值,直到小数点后 'n' 位
数字“n”将由用户输入。 我成功地创建了莱布尼茨公式,但我在后面部分遇到了问题,即精确到“n”个位置。
麻烦:- 随着越来越多的术语将继续添加到其中,它的数字将不断变化,因此如何判断一个特定的数字是否已停止变化,尽管添加了更多的术语。
目前写的代码:-
#include<iostream>
using namespace std;
int main()
{
float s=0;
int w=-1;
for(float i=1;;i=i+2)
{
w=w*(-1);
s=s+w*(1/i);
cout<<s<<endl;
}
return 0;
}
如果我只是 C++ 的初学者,如果事情能保持简单就好了。
非常感谢:)
【问题讨论】:
-
“我遇到了麻烦” 不是问题描述。这个问题非常模糊和不完整。请阅读帮助中心以了解您缺少什么 - 主要是您目前编写的代码和一个具体问题。
-
要么我遗漏了一些东西,要么数字的变化与 pi 的超越无关。您可以为 1.0 编写一个(较差的)迭代估计,但数字仍然会永远变化
-
请公开示例代码。您是否知道数值浮点问题,例如SO: Floating point inaccuracy examples?
-
谷歌肯定是一个更好的地方吗?自 1950 年代以来一直在研究这个问题。