为什么Math.pow(long,(1/3))总是返回1?

时间:2011-02-21 12:43:48

标签: java math

如果有问题,如何正确写入?

2 个答案:

答案 0 :(得分:27)

这是因为1/3是整数除法,它的计算结果为0。你有效地提高到0次幂,总是产生1.尝试1.0/3.0而不是。

答案 1 :(得分:14)

试试Math.pow(long, 1D/3)

默认情况下,Java中的数字文字被视为int。因此,应将1/3转换为0而不是0.33333。使用1D或1F或1.0进行鉴定将解决问题。