当前位置: 代码迷 >> Java相关 >> [求助]各位大哥看看小虾米弟弟的程序错在哪里
  详细解决方案

[求助]各位大哥看看小虾米弟弟的程序错在哪里

热度:257   发布时间:2007-05-21 20:38:55.0
[求助]各位大哥看看小虾米弟弟的程序错在哪里
public class jex
{
public static void main(String arg[])
{
double i,sum=0,k;
int n=1,j;
do
{
j=(-1)^(n-1);
k=1/(2*n-1);
sum+=j*k;
n+=1;
}
while((1/(2*n-1))>=0.00001);
System.out.println(sum);
}
}


本想编pi的值计算,可是,为什么结果总是-1

[此贴子已经被作者于2007-5-21 20:41:28编辑过]

搜索更多相关的解决方案: 弟弟  虾米  

----------------解决方案--------------------------------------------------------
你这个程序运行n+=1是n=2,而(1/2*n-1)=1/3常大于0.00001啊,也就是说你的程序运行一次就结束了,而这时sum是-1,所以输出是-1咯
----------------解决方案--------------------------------------------------------
不知道是怎么求的  你的循环只有一次 肯定求不出PI 1/(2*n-1) n是int类型 这个表达式头一次=0
----------------解决方案--------------------------------------------------------
搞错了,这个n是int型的   1/2*n-1应该等于0,呵呵!
----------------解决方案--------------------------------------------------------

错了,应该把那个转换为double型的,可是如果改变了的话就有错误提示了


----------------解决方案--------------------------------------------------------
而且,n不能设置为double的,只能是int型

----------------解决方案--------------------------------------------------------
好麻烦啊.看到这样的东西头就疼

----------------解决方案--------------------------------------------------------
  相关解决方案