Skip to content Skip to sidebar Skip to footer

Valueerror: Negative Number Cannot Be Raised To A Fractional Power

When I tried this in terminal >>> (-3.66/26.32)**0.2 I got the following error Traceback (most recent call last): File '', line 1, in ValueE

Solution 1:

Raising to a power takes precedence over the unary minus sign.

So you have -(0.13905775075987842 ** 0.2) and not (-0.13905775075987842) ** 0.2 as you expect:

>>> -0.13905775075987842 ** 0.2
-0.6739676327771593
>>> (-0.13905775075987842) ** 0.2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: negative number cannot be raised to a fractional power

If you want it to work you should write (-3.66/26.32 + 0j)**0.2

>>>(-3.66/26.32 + 0j)**0.2
(0.5452512685753758+0.39614823506888347j)

Or switch Python 3 as noted by @TimPietzcker.

Solution 2:

Switch to Python 3 which automatically promotes the result to a complex number:

>>>(-3.66/26.32)**0.2
(0.5452512685753758+0.39614823506888347j)

Post a Comment for "Valueerror: Negative Number Cannot Be Raised To A Fractional Power"