[Numpy-discussion] problem with float64's str()
Will Lee
lee.will@gmail....
Fri Apr 4 09:56:28 CDT 2008
I understand the implication for the floating point comparison and the need
for allclose. However, I think in a doctest context, this behavior makes
the doc much harder to read. For example, if you have this in your doctest:
def doSomething(a):
'''
>>> print doSomething(0.0011)[0]
>>> 0.0012
'''
return numpy.array([a]) + 0.0001
In the current numpy, you'll have to write:
def doSomething(a):
'''
>>> print doSomething(0.0011)[0]
>>> 0.0011999999999999999
'''
return numpy.array([a]) + 0.0001
Using allclose, you'll need to write it like:
def doSomething(a):
'''
>>> print numpy.allclose(doSomething(0.0011)[0], 0.0012)
>>> True
'''
return numpy.array([a]) + 0.0001
I don't think either cases are ideal. You can also imagine if you're
printing out a string with a float in it (like 'You got 0.0012 back'), then
you can't really use allclose at all.
Also, it's somewhat odd that the behavior for str is different for a
numpy.float64 and python's float, since otherwise they're mostly the same.
Will
On Fri, Apr 4, 2008 at 8:52 AM, Dag Sverre Seljebotn <
dagss@student.matnat.uio.no> wrote:
> Bruce Southey wrote:
> > Hi,
> > This topic has come up many times and the only problem is the lack of
> > understanding how computers store numbers and computer numerical
> precision.
> >
> > The NumPy output is consistent with Python on my x86_64 linux system
> > with Python 2.5.1:
> > >>> a=0.0012
> > >>> a
> > 0.0011999999999999999
> >
> Wasn't this discussion about the repr vs. str functions?
>
> >>> repr(0.0012)
> '0.0011999999999999999'
> >>> str(0.0012)
> '0.0012'
>
>
>
> Dag Sverre
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20080404/1a5cd4b4/attachment-0001.html
More information about the Numpy-discussion
mailing list