有没有人能帮我找出一个用python计算负数的立方根的方法?
>>> math.pow(-3, float(1)/3)
nan
它不起作用。负数的立方根是负数。有什么解决方案吗?
发布于 2009-09-01 10:42:38
您可以使用:
-math.pow(3, float(1)/3)
或者更一般地说:
if x > 0:
return math.pow(x, float(1)/3)
elif x < 0:
return -math.pow(abs(x), float(1)/3)
else:
return 0
发布于 2009-09-01 10:50:09
math.pow(abs(x),float(1)/3) * (1,-1)[x<0]
发布于 2009-09-01 10:54:58
接受前面的答案,并将其变成一行:
import math
def cubic_root(x):
return math.copysign(math.pow(abs(x), 1.0/3.0), x)
https://stackoverflow.com/questions/1361740
复制相似问题