Bizarre arithmetic results
Andre Engels
andreengels at gmail.com
Thu Feb 11 07:26:56 EST 2010
On Thu, Feb 11, 2010 at 1:44 AM, Terrence Cole
<list-sink at trainedmonkeystudios.org> wrote:
> Can someone explain to me what python is doing here?
>
> Python 3.1.1 (r311:74480, Feb 3 2010, 13:36:47)
> [GCC 4.3.4] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> -0.1 ** 0.1
> -0.7943282347242815
>>>> a = -0.1; b = 0.1
>>>> a ** b
> (0.7554510437117542+0.2454609236416552j)
>>>> -abs(a ** b)
> -0.7943282347242815
>
> Why does the literal version return the signed magnitude and the
> variable version return a complex?
It's an issue of precedence of operators:
-0.1 ** 0.1
is interpreted as
-(0.1 ** 0.1)
and not as
(-0.1) ** 0.1
--
André Engels, andreengels at gmail.com
More information about the Python-list
mailing list