永发信息网

我想求1+1/2!+1/3!+1/4!+1/5! ,但是如下代码计算结果总是1.0,请问错在哪里了?

答案:1  悬赏:70  手机版
解决时间 2021-11-14 07:18
  • 提问者网友:沦陷
  • 2021-11-14 01:15
我想求1+1/2!+1/3!+1/4!+1/5! ,但是如下代码计算结果总是1.0,请问错在哪里了?
最佳答案
  • 五星知识达人网友:摆渡翁
  • 2021-11-14 02:46
因为Java语言中整数除以整数得出的结果,程序会自动取整,所以1/i当i>1时程序会自动取整得到的结果为0,所以程序的结果为1.0,改正的方法是,把1/i改成1.0/i,让一个double型的数除以整数得到的结果就是double型的小数了,就不是0了.程序的结果就是1.7166666666666668了.
完整的Java程序如下(改动的地方见注释)
package lianxi4;
public class kongzhi2 {
 public static void main(String[] args) {
  double sum1=1;
  double sum2=0;
  int i=1;
  while(i<=5){
   sum1=sum1*(1.0/i);//这里sum1=sum1*(1/i);改成sum1=sum1*(1.0/i);
   sum2=sum2+sum1;
   i++;
  }
  System.out.println(sum2);
 }
}运行结果
1.7166666666666668

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯