如何计算^(1 / n)?

时间:2013-04-11 17:58:28

标签: java floating-point division exponentiation

我正在尝试计算a^(1/n),其中^表示取幂。

但是,以下内容:

Math.pow(8, 1/3)

返回1.0而不是返回2.0

为什么?

3 个答案:

答案 0 :(得分:17)

问题是1/3使用integer (truncating) division,结果为零。将您的代码更改为

Math.pow(8, 1./3);

.1.转换为浮点字面值。)

答案 1 :(得分:5)

1/3变为0(因为13被视为int文字。)

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

执行:

Math.pow(8, 1f/3)

Math.pow(8, 1./3)

Math.pow(8, 1.0/3)

答案 2 :(得分:4)

请尝试Math.pow(8, (1.0f / 3.0f))

1 / 3将执行整数除法,它将为您提供8 ^ 0 = 1