首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为何得不到正确的结果

2011-12-19 
为什么得不到正确的结果我写的程序如下:public class szhi{publicstatic void main(String args[]){ doubl

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

热点排行