3

我正在尝试让我的程序获得数字的第 5 个根。我已经使用该Math.pow(a, b);方法来获得它,但是由于某种原因它不起作用。

可以说我做类似的事情double z = Math.pow(5, 5)。一旦它获得值,我就会对此进行 a System.out,它将打印3125. 当我z = Math.Pow(z, 1/5)之后对它进行操作并执行 System.out 时,它不会给我 5 的结果,而是 1。有人可以向我解释为什么会这样吗?

谢谢!

4

3 回答 3

13

尝试z = Math.Pow(z, 1.0/5)

1/5 == 0在java中

于 2012-11-16T13:47:46.860 回答
7

这是因为您正在进行整数除法:1/5是 0 因此结果(x^0 始终为 1)。

尝试:z = Math.Pow(z, 1.0d/5);

于 2012-11-16T13:47:54.550 回答
7

1/5 作为整数除法四舍五入为 0。

试试 1.0/5,或者只放 0.2。

于 2012-11-16T13:47:59.520 回答