【发布时间】:2018-04-07 10:19:35
【问题描述】:
在数学中,您可以取负数的立方根,因为负数乘以其他两个负数会得到一个负数。将某事物提高到分数幂 1/n 与取它的 n 次方相同。因此,-27 或 (-27)**(1.0/3.0) 的三次根为 -3。
但是在 Python 2 中,当我输入 (-27)**(1.0/3.0) 时,它给了我一个错误:
Traceback (most recent call last):
File "python", line 1, in <module>
ValueError: negative number cannot be raised to a fractional power
Python 3 不会产生异常,但它会给出一个看起来不像 -3 的复数:
>>> (-27)**(1.0/3.0)
(1.5000000000000004+2.598076211353316j)
为什么我没有得到具有数学意义的结果?有没有解决方法?
【问题讨论】:
-
重新打开。我认为这些欺骗目标都不合适。一个没有解释,另一个在谈论不同的问题。这个问题需要解释。
-
问题是
1.0/3.0不是分数而是浮点数。 -
有关所有问题的更好解释,请参阅:stackoverflow.com/q/31231115/984421。
标签: python