【发布时间】:2013-04-04 01:16:07
【问题描述】:
我正在尝试计算a^(1/n),其中^ 表示求幂。
但是,以下内容:
Math.pow(8, 1/3)
返回1.0,而不是返回2.0。
这是为什么呢?
【问题讨论】:
-
哇。可爱的。 :)
-
虽然这个问题可以使用更好的描述,但我并不真正理解所有的反对意见。这对这里的大多数人来说可能是微不足道的,但是这种事情(需要浮点除法时的整数除法)是一个非常普遍的问题,尤其是在新开发人员中;这个问题肯定会对其他人有所帮助。
-
@Saggio - 是的,这对初学者来说是一个主要的绊脚石,甚至我们中的一些“专家”也会时不时地与它发生冲突(并且在这个问题上花费的时间比我们愿意承认的要多在我们弄清楚之前)。
-
当然,这是一个骗子,但不是一个坏问题。初学者很难找到骗子。
-
如果 1/3 不仅仅是一个示例,而是您专门使用的东西,那么您应该考虑使用
Math.cbrt而不是Math.pow。
标签: java floating-point division exponentiation