java double无法正确计算

时间:2012-09-14 03:03:25

标签: java double

我正在为一个班级制作这个程序,我需要猜测一个数字的立方根。这是我的代码:

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.任何人都可以告诉我为什么会发生这种情况以及如何解决它?

3 个答案:

答案 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声明......

没有意义