[Tutor] puzzled by Python 3's print()
breamoreboy at yahoo.co.uk
Thu Jul 1 18:25:23 CEST 2010
On 01/07/2010 14:11, Richard D. Moores wrote:
> On Thu, Jul 1, 2010 at 04:57, Steven D'Aprano<steve at pearwood.info> wrote:
>> On Thu, 1 Jul 2010 06:26:21 pm Richard D. Moores wrote:
>>>>>> x = 2000000000000034
>>> I was expecting, in fact needing, 1000000000000000017 or
>>> 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
>> If you want more control over the string conversion, you can do
>> something like this:
>>>>> print('%.5f' % x)
> 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
> (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. :)
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
Take a look at section 7.1.3 here.
This is the recommended way to format strings in Python 3.
More information about the Tutor