diff options
author | Raymond Hettinger <python@rcn.com> | 2008-10-05 16:46:29 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2008-10-05 16:46:29 (GMT) |
commit | 9fce0ba9e22dd4e87800f3c079e4873c0990026a (patch) | |
tree | bf2003a48f7ace2bd75d9804573a4b2d1e3446e1 | |
parent | d12dcaea3ed9f476df0831f02631eb586a251e2d (diff) | |
download | cpython-9fce0ba9e22dd4e87800f3c079e4873c0990026a.zip cpython-9fce0ba9e22dd4e87800f3c079e4873c0990026a.tar.gz cpython-9fce0ba9e22dd4e87800f3c079e4873c0990026a.tar.bz2 |
Issue 3288: document as_integer_ratio(), fromhex(), and hex().
-rw-r--r-- | Doc/tutorial/floatingpoint.rst | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/Doc/tutorial/floatingpoint.rst b/Doc/tutorial/floatingpoint.rst index c9408c9..8816acc 100644 --- a/Doc/tutorial/floatingpoint.rst +++ b/Doc/tutorial/floatingpoint.rst @@ -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 at the Numerical Python package and many other packages for mathematical and 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: Representation Error |