Message131951
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. |
|
Date |
User |
Action |
Args |
2011-03-24 02:30:52 | JBernardo | set | recipients:
+ JBernardo |
2011-03-24 02:30:52 | JBernardo | set | messageid: <1300933852.92.0.68969844622.issue11658@psf.upfronthosting.co.za> |
2011-03-24 02:30:52 | JBernardo | link | issue11658 messages |
2011-03-24 02:30:52 | JBernardo | create | |
|