8

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

但是,以下内容:

Math.pow(8, 1/3)

返回1.0而不是返回2.0

这是为什么?

4

3 回答 3

17

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

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

(将.变成1.浮点文字。)

于 2013-04-11T18:00:22.757 回答
5

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

所以你应该让这些文字浮动/双...

做:

Math.pow(8, 1f/3) 或者

Math.pow(8, 1./3) 或者

Math.pow(8, 1.0/3)

于 2013-04-11T18:05:18.737 回答
4

试试Math.pow(8, (1.0f / 3.0f))吧。

1 / 3会做一个整数除法,这会给你8 ^ 0 = 1

于 2013-04-11T18:01:02.010 回答