回 帖 发 新 帖 刷新版面

主题:vc小问题  就大神指点下

就是求pi=3.14159
程序我写的如下:

#include<iostream>
using namespace std;

double arctan(double x);
void main()
{
  double a;
  a=16.0*arctan(1/5.0)-4.0*arctan(1/239.0);
  cout<<"pi="<<a<<endl;
}
double arctan(double x)
{
  int i=1;
double j=0,k,l,m;
  k=x*x;
  l=x;
           while(l/i>1e-15)
           {
             m=l/i;
             j= (i%4==1)? j+m:j-m;
             l*=k;
             i+=2;
           }
     return j;
}

程序也正常输出了pi=3.14159    后来我想让它输出的小数位数多点 想着把double换成long就行了  可是把该换的都换了 结果却不对了 连小数点后一位都没有了直接是3  这是怎么个问题哦? 求大神们解释解释 和解决解决

回复列表 (共3个回复)

沙发


怎么没人回答哦? 大神不都是午夜开工的吗? 不屑这么搓的问题? 555555 周日求好心情~不解决 头疼

板凳

c++中double会默认输出六位有效数字,假如[color=0000FF]double a = 1.23456789541 [/color] 输出的还是a=1.23456.通过设置输出的位数可以达到你想要的结果。这个网上可以查到...

3 楼


额 这个用setprecision()可以解决 三克油~

我来回复

您尚未登录,请登录后再回复。点此登录或注册