为什么得不到正确的结果
我写的程序如下:
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就是单精度的意思