读书人

为何得不到正确的结果

发布时间: 2011-12-19 23:23:36 作者: rapoo

为什么得不到正确的结果
我写的程序如下:
public class szhi{
public static void main(String args[])
{ double s=2,sum=0;
int n=1;
for(n=1;n<=100;n++)
{
if(n%2==0)
{s=-1/n;}
else
{s=1/n;}
sum=sum+s;
}
System.out.println(sum);}
}

输出的结果是 1.0
当我把程序改成如下时结果正确:
public class szhi{
public static void main(String args[])
{ double s=2,sum=0;
int n=1;
for(n=1;n<=100;n++)
{
if(n%2==0)
{s=(double)-1/n;}
else
{s=(double)1/n;}
sum=sum+s;
}
System.out.println(sum);}
}
难到一定要进行强制转换吗?
不是说 int能自动向double转换吗?为什么要人为强制转换呢?
谢谢 说明~

[解决办法]
我记得应该写成 1d或者 1.0d 当然1.0也性

d就是double的意思 数字后加f就是单精度的意思

读书人网 >J2SE开发

热点推荐