我正在尝试找到负数的立方根,但我得到了一个NaN。有什么帮助吗?
System.out.println(Math.pow(-8, 1.0 / 3.0));
答案 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
具有负基础和非整数幂的原因是,通常通过复平面中的角度大小来完成供电。
NaN
。答案 2 :(得分:3)
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html#cbrt(double)
System.out.println(Math.cbrt(-8));
答案 3 :(得分:1)
来自http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html:
如果第一个参数是有限且小于零
- 如果第二个 参数是有限的偶数,结果等于结果 将第一个论证的绝对值提高到幂的幂 第二个论点
- 如果第二个参数是有限的奇数, 结果等于提高结果的负面结果 第二个参数的绝对值 参数
- 如果第二个参数是有限的而不是整数,那么 结果是NaN。