New submission from João Bernardo <jbv...@gmail.com>:

With Python 3, the ** operator is supposed to do math with complex numbers, but 
look what is happening:

Python 3.2 (r32:88445, Feb 20 2011, 21:30:00) [MSC v.1500 64 bit (AMD64)] on 
win32
Type "copyright", "credits" or "license()" for more information.
>>> (-1)**.5
(6.123233995736766e-17+1j)
>>> import cmath
>>> cmath.sqrt(-1)
1j
>>> pow(-1, .5)
(6.123233995736766e-17+1j)
>>> (-4)**.5
(1.2246467991473532e-16+2j)
>>> 

I also tried with Python 3.1.2 in my 32-bit Ubuntu 10.10 installation and got 
the same results.

The error seems to be in the floating point (double) representation limit of 16 
decimal places.

----------
components: None
messages: 131951
nosy: JBernardo
priority: normal
severity: normal
status: open
title: complex sqrt error
type: behavior
versions: Python 3.1, Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11658>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to