负数的立方根

Chr*_*hro 9 java math

我试图找到一个负数的立方根,但我得到一个NaN.有帮助吗?

System.out.println(Math.pow(-8, 1.0 / 3.0));
Run Code Online (Sandbox Code Playgroud)

Eti*_*tel 14

状态的Java文档Math.pow:

如果第一个参数是有限的并且小于零[...] [和]如果第二个参数是有限的而不是整数,则结果是NaN.

您可以使用Math.cbrt获取多维数据集根目录:

double result = Math.cbrt(-8.0);
Run Code Online (Sandbox Code Playgroud)


Mys*_*ial 7

请记住,在数学上,有3个立方根.假设你想要真正的根,你应该这样做:

x = 8;  //  Your value

if (x > 0)
    System.out.println(Math.pow(x, 1.0 / 3.0));
else
    System.out.println(-Math.pow(-x, 1.0 / 3.0));
Run Code Online (Sandbox Code Playgroud)

编辑:正如其他答案提到的那样Math.cbrt(x).(我不知道存在)

具有负基和非积分功率的pow返回的原因NaN是通常通过复平面中的角度大小来完成供电.

  • 对于正实数,角度为零,因此答案仍然是正的和真实的.
  • 对于负实数,角度为180度,(在乘以非整数幂之后)将始终产生复数 - 因此a NaN.