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?