On 04/11/2017 10:48 AM, Rafael Knuth wrote:

> Thanks for the clarification.
> I tested this approach, and I noticed one weird thing:
> 
> Pi_Number = str(3.14159265358979323846264338327950288419716939)
> Pi_Number = "3" + Pi_Number[2:]
> print(Pi_Number)
> 
> == RESTART: C:\Users\Rafael\Documents\01 - BIZ\CODING\Python Code\PPC_56.py ==
> 3141592653589793
>>>>
> 
> How come that not the entire string is being printed, but only the
> first 16 digits?

Believe it or not, this is one of the Mysteries of Life (Monty Python
reference since that's what the language is named after... sorry).

To get what you're expecting, you could do this:

import decimal

Pi_Number =
str(decimal.Decimal(3.14159265358979323846264338327950288419716939))

in general, (binary) floats and all other things don't interact the way
we mere mortals might expect, and there's a ton of writing on that
topic. The decimal module documentation contains this pithy comment near
the top:

Decimal “is based on a floating-point model which was designed with
people in mind, and necessarily has a paramount guiding principle –
computers must provide an arithmetic that works in the same way as the
arithmetic that people learn at school.”

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to