如何计算^(1/n)?

Glt*_*Btn 8 java floating-point division exponentiation

我试图计算a^(1/n),其中^表示取幂.

但是,以下内容:

Math.pow(8, 1/3)
Run Code Online (Sandbox Code Playgroud)

返回1.0而不是返回2.0.

这是为什么?

NPE*_*NPE 17

问题是1/3使用整数(截断)除法,其结果为零.将您的代码更改为

Math.pow(8, 1./3);
Run Code Online (Sandbox Code Playgroud)

(.将其1.转换为浮点字面值.)


Sam*_*Sam 5

1/30(由于13被当作int文本).

所以你应该让那些文字浮动/加倍......

做:

Math.pow(8, 1f/3) 要么

Math.pow(8, 1./3) 要么

Math.pow(8, 1.0/3)