[Numpy-discussion] problem with float64's str()

Stéfan van der Walt stefan@sun.ac...
Fri Apr 4 05:14:06 CDT 2008


Hi Will

On 03/04/2008, Will Lee <lee.will@gmail.com> wrote:
> I seem to have problem with floating point printing with the latest numpy,
> python 2.5.2, gcc 4.1.4, and 64-bit linux:
>
> In [24]: print str(0.0012)
> 0.0012
>
> In [25]: a = numpy.array([0.0012])
>
>  In [26]: print str(a[0])
> 0.0011999999999999999
>
> In [27]: print numpy.__version__
> 1.0.5.dev4950
>
> It seems like the str() behavior for float64 in the latest numpy's behavior
> is different than Python's default behavior (and previous numpy's behavior).
>
>
> As I have numerous doc tests, this seems to make many of them failed.
> Should the float64's str() behavior be consistent with what's described in
> http://docs.python.org/tut/node16.html?  Is there any way
> to get around it so I can get to the default Python behavior?

As a workaround, you can simply remove 'str' from your print statement:

In [17]: print x[0]
0.0012

I am not sure why str([x[0]) is equivalent to repr(0.0012).

Regards
Stéfan


More information about the Numpy-discussion mailing list