Issue 3288: document as_integer_ratio(), fromhex(), and hex().

This commit is contained in:
Raymond Hettinger 2008-10-05 16:46:29 +00:00
parent d12dcaea3e
commit 9fce0ba9e2
1 changed files with 33 additions and 1 deletions

View File

@ -138,7 +138,39 @@ method's format specifiers in :ref:`formatstrings`.
If you are a heavy user of floating point operations you should take a look If you are a heavy user of floating point operations you should take a look
at the Numerical Python package and many other packages for mathematical and at the Numerical Python package and many other packages for mathematical and
statistical operations supplied by the SciPy project. See <http://scipy.org>. statistical operations supplied by the SciPy project. See <http://scipy.org>.
Python provides tools that may help on those rare occasions when you really
*do* want to know the exact value of a float. The
:meth:`float.as_integer_ratio` method expresses the value of a float as a
fraction::
>>> x = 3.14159
>>> x.as_integer_ratio()
(3537115888337719L, 1125899906842624L)
Since the ratio is exact, it can be used to losslessly recreate the
original value::
>>> x == 3537115888337719 / 1125899906842624
True
The :meth:`float.hex` method expresses a float in hexadecimal (base
16), again giving the exact value stored by your computer::
>>> x.hex()
'0x1.921f9f01b866ep+1'
This precise hexadecimal representation can be used to reconstruct
the float value exactly::
>>> x == float.fromhex('0x1.921f9f01b866ep+1')
True
Since the representation is exact, it is useful for reliably porting values
across different versions of Python (platform independence) and exchanging
data with other languages that support the same format (such as Java and C99).
.. _tut-fp-error: .. _tut-fp-error:
Representation Error Representation Error