
python-checkins at python
Nov 24, 2009, 8:20 AM
Post #1 of 1
(74 views)
Permalink
|
|
r76489 - in python/trunk/Doc: faq/design.rst library/decimal.rst library/math.rst library/sqlite3.rst library/turtle.rst tutorial/floatingpoint.rst tutorial/inputoutput.rst tutorial/stdlib2.rst
|
|
Author: mark.dickinson Date: Tue Nov 24 15:27:02 2009 New Revision: 76489 Log: Fix some documentation examples involving the repr of a float. Modified: python/trunk/Doc/faq/design.rst python/trunk/Doc/library/decimal.rst python/trunk/Doc/library/math.rst python/trunk/Doc/library/sqlite3.rst python/trunk/Doc/library/turtle.rst python/trunk/Doc/tutorial/floatingpoint.rst python/trunk/Doc/tutorial/inputoutput.rst python/trunk/Doc/tutorial/stdlib2.rst Modified: python/trunk/Doc/faq/design.rst ============================================================================== --- python/trunk/Doc/faq/design.rst (original) +++ python/trunk/Doc/faq/design.rst Tue Nov 24 15:27:02 2009 @@ -75,9 +75,9 @@ function prints fewer digits and this often results in the more sensible number that was probably intended:: - >>> 0.2 - 0.20000000000000001 - >>> print 0.2 + >>> 1.1 - 0.9 + 0.20000000000000007 + >>> print 1.1 - 0.9 0.2 One of the consequences of this is that it is error-prone to compare the result Modified: python/trunk/Doc/library/decimal.rst ============================================================================== --- python/trunk/Doc/library/decimal.rst (original) +++ python/trunk/Doc/library/decimal.rst Tue Nov 24 15:27:02 2009 @@ -35,9 +35,9 @@ people learn at school." -- excerpt from the decimal arithmetic specification. * Decimal numbers can be represented exactly. In contrast, numbers like - :const:`1.1` do not have an exact representation in binary floating point. End - users typically would not expect :const:`1.1` to display as - :const:`1.1000000000000001` as it does with binary floating point. + :const:`1.1` and :const:`2.2` do not have an exact representations in binary + floating point. End users typically would not expect ``1.1 + 2.2`` to display + as :const:`3.3000000000000003` as it does with binary floating point. * The exactness carries over into arithmetic. In decimal floating point, ``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating point, the result @@ -193,7 +193,7 @@ >>> str(a) '1.34' >>> float(a) - 1.3400000000000001 + 1.34 >>> round(a, 1) # round() first converts to binary floating point 1.3 >>> int(a) Modified: python/trunk/Doc/library/math.rst ============================================================================== --- python/trunk/Doc/library/math.rst (original) +++ python/trunk/Doc/library/math.rst Tue Nov 24 15:27:02 2009 @@ -90,7 +90,7 @@ loss of precision by tracking multiple intermediate partial sums:: >>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) - 0.99999999999999989 + 0.9999999999999999 >>> fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1]) 1.0 Modified: python/trunk/Doc/library/sqlite3.rst ============================================================================== --- python/trunk/Doc/library/sqlite3.rst (original) +++ python/trunk/Doc/library/sqlite3.rst Tue Nov 24 15:27:02 2009 @@ -83,7 +83,7 @@ >>> for row in c: ... print row ... - (u'2006-01-05', u'BUY', u'RHAT', 100, 35.140000000000001) + (u'2006-01-05', u'BUY', u'RHAT', 100, 35.14) (u'2006-03-28', u'BUY', u'IBM', 1000, 45.0) (u'2006-04-06', u'SELL', u'IBM', 500, 53.0) (u'2006-04-05', u'BUY', u'MSOFT', 1000, 72.0) @@ -601,7 +601,7 @@ >>> type(r) <type 'sqlite3.Row'> >>> r - (u'2006-01-05', u'BUY', u'RHAT', 100.0, 35.140000000000001) + (u'2006-01-05', u'BUY', u'RHAT', 100.0, 35.14) >>> len(r) 5 >>> r[2] Modified: python/trunk/Doc/library/turtle.rst ============================================================================== --- python/trunk/Doc/library/turtle.rst (original) +++ python/trunk/Doc/library/turtle.rst Tue Nov 24 15:27:02 2009 @@ -875,7 +875,7 @@ >>> tup = (0.2, 0.8, 0.55) >>> turtle.pencolor(tup) >>> turtle.pencolor() - (0.20000000000000001, 0.80000000000000004, 0.5490196078431373) + (0.2, 0.8, 0.5490196078431373) >>> colormode(255) >>> turtle.pencolor() (51, 204, 140) Modified: python/trunk/Doc/tutorial/floatingpoint.rst ============================================================================== --- python/trunk/Doc/tutorial/floatingpoint.rst (original) +++ python/trunk/Doc/tutorial/floatingpoint.rst Tue Nov 24 15:27:02 2009 @@ -115,7 +115,7 @@ ... sum += 0.1 ... >>> sum - 0.99999999999999989 + 0.9999999999999999 Binary floating-point arithmetic holds many surprises like this. The problem with "0.1" is explained in precise detail below, in the "Representation Error" Modified: python/trunk/Doc/tutorial/inputoutput.rst ============================================================================== --- python/trunk/Doc/tutorial/inputoutput.rst (original) +++ python/trunk/Doc/tutorial/inputoutput.rst Tue Nov 24 15:27:02 2009 @@ -49,10 +49,10 @@ 'Hello, world.' >>> repr(s) "'Hello, world.'" - >>> str(0.1) - '0.1' - >>> repr(0.1) - '0.10000000000000001' + >>> str(1.0/7.0) + '0.142857142857' + >>> repr(1.0/7.0) + '0.14285714285714285' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + repr(x) + ', and y is ' + repr(y) + '...' Modified: python/trunk/Doc/tutorial/stdlib2.rst ============================================================================== --- python/trunk/Doc/tutorial/stdlib2.rst (original) +++ python/trunk/Doc/tutorial/stdlib2.rst Tue Nov 24 15:27:02 2009 @@ -362,10 +362,13 @@ becomes significant if the results are rounded to the nearest cent:: >>> from decimal import * - >>> Decimal('0.70') * Decimal('1.05') + >>> x = Decimal('0.70') * Decimal('1.05') + >>> x Decimal('0.7350') - >>> .70 * 1.05 - 0.73499999999999999 + >>> x.quantize(Decimal('0.01')) # round to nearest cent + Decimal('0.74') + >>> round(.70 * 1.05, 2) # same calculation with floats + 0.73 The :class:`Decimal` result keeps a trailing zero, automatically inferring four place significance from multiplicands with two place significance. Decimal _______________________________________________ Python-checkins mailing list Python-checkins [at] python http://mail.python.org/mailman/listinfo/python-checkins
|