3

プログラムで数値の5乗根を取得しようとしています。私はMath.pow(a, b);これを取得するためにメソッドを使用しましたが、何らかの理由で機能していません。

私がのようなことをしたとしましょうdouble z = Math.pow(5, 5)。値を取得したらこれを実行する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 == 0Javaで

于 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 に答える