What is the proper/accepted way to print and convert a numpy.float64 to a string? I've noticed just using print
or str()
will lose some precision. However, repr
maintains the full precision. For example:
>>> import numpy
>>> print numpy.float64('6374.345407799015')
6374.3454078
>>> print repr(numpy.float64('6374.345407799015'))
6374.3454077990154
I assume that just calling print turns into calling
str()
on the float64 object. So is__str__()
for numpy.float64 implemented with something like'%s' % (float(self))
or somehow casts the float64 with Python's built-infloat()
? I tried to quickly look around the numpy source for this but wasn't immediately obvious what was happening.I've always thought
repr()
should return valid Python code that could be used byeval()
to re-create the object. Is this an accepted convention? Luckily in this case numpy does not follow this convention becauserepr()
returns just the raw number as a string instead of something like"numpy.float64('6374.345407799015')"
.
So, all of this confuses me. What is the correct way to convert a numpy.float64 to a string and/or print it while guaranteeing you always have the same, full precision?