1

java.lang.Math.pow(double a, double b)的 Javadoc状态:

  • 如果第一个参数是有限的并且小于零:
    • 如果第二个参数是有限的而不是整数,则结果为 NaN。

这意味着调用Math.pow(-Math.E,-1.1d)yield NaN。

为什么 Math.pow() 不返回逆1/e^1.1?我的推理有错误吗?

谢谢!

4

2 回答 2

10

是的,你的逻辑有问题。请去阅读复数。

问题在于,将负基数提高到非整数负幂会产生复数,而不是真正的双精度数。有一个虚构的部分Math.pow无法处理。

于 2013-06-04T12:39:28.980 回答
1

是的,为什么它应该返回1/e^1.1?这将1/(-e)^1.1不是实数。

于 2013-06-04T12:40:28.530 回答