负数的立方根

时间:2011-11-28 02:08:28

标签: java math

我正在尝试找到负数的立方根,但我得到了一个N​​aN。有什么帮助吗?

System.out.println(Math.pow(-8, 1.0 / 3.0));

4 个答案:

答案 0 :(得分:14)

Math.pow州的Java文档:

  

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

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

double result = Math.cbrt(-8.0);

答案 1 :(得分: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));

编辑:正如其他答案所述,有Math.cbrt(x)。 (我不知道存在)

pow返回NaN具有负基础和非整数幂的原因是,通常通过复平面中的角度大小来完成供电。

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

答案 2 :(得分:3)

答案 3 :(得分:1)

来自http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html

  

如果第一个参数是有限且小于零

     
      
  • 如果第二个   参数是有限的偶数,结果等于结果   将第一个论证的绝对值提高到幂的幂   第二个论点
  •   
  • 如果第二个参数是有限的奇数,   结果等于提高结果的负面结果   第二个参数的绝对值   参数
  •   
  • 如果第二个参数是有限的而不是整数,那么   结果是NaN。
  •