mirror of
https://github.com/python/cpython.git
synced 2025-08-03 08:34:29 +00:00
Merged revisions 73656,73658,73663,73666 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k ........ r73656 | mark.dickinson | 2009-06-29 00:08:40 +0200 (Mo, 29 Jun 2009) | 1 line Fix description of range_length_obj ........ r73658 | raymond.hettinger | 2009-06-29 00:30:13 +0200 (Mo, 29 Jun 2009) | 1 line Small doc fix-ups to floatingpoint.rst. More are forthcoming. ........ r73663 | raymond.hettinger | 2009-06-29 01:21:38 +0200 (Mo, 29 Jun 2009) | 1 line Clean-up floating point tutorial. ........ r73666 | alexandre.vassalotti | 2009-06-29 03:13:41 +0200 (Mo, 29 Jun 2009) | 2 lines Make b64encode raises properly a TypeError when altchars is not bytes. ........
This commit is contained in:
parent
98e472d7fb
commit
7d1e88063c
3 changed files with 10 additions and 11 deletions
|
@ -82,7 +82,7 @@ values share the same approximation, any one of them could be displayed
|
|||
while still preserving the invariant ``eval(repr(x)) == x``.
|
||||
|
||||
Historically, the Python prompt and built-in :func:`repr` function would chose
|
||||
the one with 17 significant digits, ``0.10000000000000001``, Starting with
|
||||
the one with 17 significant digits, ``0.10000000000000001``. Starting with
|
||||
Python 3.1, Python (on most systems) is now able to choose the shortest of
|
||||
these and simply display ``0.1``.
|
||||
|
||||
|
@ -123,9 +123,9 @@ Also, since the 0.1 cannot get any closer to the exact value of 1/10 and
|
|||
|
||||
Though the numbers cannot be made closer to their intended exact values,
|
||||
the :func:`round` function can be useful for post-rounding so that results
|
||||
have inexact values that are comparable to one another::
|
||||
with inexact values become comparable to one another::
|
||||
|
||||
>>> round(.1 + .1 + .1, 1) == round(.3, 1)
|
||||
>>> round(.1 + .1 + .1, 10) == round(.3, 10)
|
||||
True
|
||||
|
||||
Binary floating-point arithmetic holds many surprises like this. The problem
|
||||
|
@ -137,7 +137,7 @@ As that says near the end, "there are no easy answers." Still, don't be unduly
|
|||
wary of floating-point! The errors in Python float operations are inherited
|
||||
from the floating-point hardware, and on most machines are on the order of no
|
||||
more than 1 part in 2\*\*53 per operation. That's more than adequate for most
|
||||
tasks, but you do need to keep in mind that it's not decimal arithmetic, and
|
||||
tasks, but you do need to keep in mind that it's not decimal arithmetic and
|
||||
that every float operation can suffer a new rounding error.
|
||||
|
||||
While pathological cases do exist, for most casual use of floating-point
|
||||
|
@ -165,7 +165,7 @@ fraction::
|
|||
|
||||
>>> x = 3.14159
|
||||
>>> x.as_integer_ratio()
|
||||
(3537115888337719L, 1125899906842624L)
|
||||
(3537115888337719, 1125899906842624)
|
||||
|
||||
Since the ratio is exact, it can be used to losslessly recreate the
|
||||
original value::
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue