我想求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
完整的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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯