Home Reading Searching Subscribe Sponsors Statistics Posting Contact Spam Lists Links About Hosting Filtering Features Download Marketing Archives FAQ Blog From: Mark Lawrence yahoo.co.uk> Subject: Re: puzzled by Python 3's print() Newsgroups: gmane.comp.python.tutor Date: Thursday 1st July 2010 16:25:23 UTC (over 7 years ago) ```On 01/07/2010 14:11, Richard D. Moores wrote: > On Thu, Jul 1, 2010 at 04:57, Steven D'Aprano wrote: >> On Thu, 1 Jul 2010 06:26:21 pm Richard D. Moores wrote: >>>>>> x = 2000000000000034 >>>>>> x/2 >>> 1000000000000017.0 >>> >>>>>> print(x/2) >>> 1e+15 >>> >>> I was expecting, in fact needing, 1000000000000000017 or >>> 1000000000000000017.0 >>> >>> 1e+15 is unsatisfactory. Am I forced to use the decimal module? >> >> This is not an issue with print, this is an issue with floats -- they >> produced a rounded, approximate value when converted to a string. print >> merely prints that string: >> >>>>> x = 1e15 +17 >>>>> x >> 1000000000000017.0 >>>>> print(x) >> 1e+15 >>>>> str(x) >> '1e+15' >> >> >> If you want more control over the string conversion, you can do >> something like this: >> >>>>> print(repr(x)) >> 1000000000000017.0 >>>>> print('%.5f' % x) >> 1000000000000017.00000 > > Thanks to yours and others responses, I've learned some things I > didn't know, but remember, I'm starting with long ints such as > x = 2000000000000034, cutting it in half, and hoping to print > 1000000000000017 or 1000000000000017.0 > (I also need to divide odd ints like 2000000000000033 and print > 1000000000000017.5) > > (In my initial post, I used a smaller x, x = 2000000000000034. I > should have made it longer, to reflect the ints I'm dealing with (big > primes and their near neighbors). > > I'm still hoping to be saved from the decimal module :) . I think that we can manage that. :) > > Dick > _______________________________________________ > Tutor maillist - [email protected] > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > Take a look at section 7.1.3 here. http://docs.python.org/py3k/library/string.html#string-formatting This is the recommended way to format strings in Python 3. Kindest regards. Mark Lawrence. _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor```
CD: 20ms