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

6
如果问题出在电源方面,应该如何正确书写?
2个回答

28

这是因为 1/3 使用的是整数除法,结果为 0。实际上,您是将其提高到了0次方,这总是产生1的结果。请尝试使用 1.0/3.0


15

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

在Java中,默认情况下,数字字面量被视为int类型。因此,1/3会被转换为0而不是0.33333(应该是正确结果)。可以通过添加1D或1F或1.0来解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接