我正在为一个班级制作这个程序,我需要猜测一个数字的立方根。这是我的代码:
int N = Integer.parseInt(args[0]);
//sets the guess at 1.0
guess = 1.0;
//whether or not the guess is close to N
while (guess * guess * guess <= N ){
double show = (guess + ((1/3) * ((N / (guess * guess)) - guess)));
System.out.println(show);
guess = show;
continue;
}
然而,每次我运行此程序时,双重显示总是设置为值1.任何人都可以告诉我为什么会发生这种情况以及如何解决它?
答案 0 :(得分:3)
使用整数运算计算常量表达式(1/3)
,保留0.尝试使用(1.0/3.0)
。或者,或者
double show = (guess + (((N / (guess * guess)) - guess)) / 3.0);
答案 1 :(得分:3)
1/3 = 0
因为1/3是整数除法,它总是0.它应该是
1.0/3.0
答案 2 :(得分:3)
问题是整数除法。 1 / 3 = 0
。
将其更改为1.0 / 3.0
continue
声明...... 没有意义