newbie: precision question
lada.kugis at gmail.com
Sat Mar 21 05:02:57 CET 2009
On 21 Mar 2009 03:34:18 GMT, Steven D'Aprano
<steve at REMOVE-THIS-cybersource.com.au> wrote:
thanks for answering on such short notice,
>Floats in Python don't have infinite precision.
>Ints (or longs) can have infinite precision. Try calculating (say)
>1234567**315*24689 and you should get 1923 digits. By the way, you can do
>calculations on ints with tens of thousands of digits *much* faster than
>you can print those same ints: on my computer, calculating all 75199
>digits of 1234567**12345 takes less than an eye-blink, while printing it
Yes, I've tried things like
>>> print 2**10000
(gives a large, really mind-boggingly huge big number :)
So, if I understood you right, integers can have infinite precision
and floating points are up to 16 digits (if I remember anything they
thought me in my C classes) because they cannot be represented exactly
in binary form. C representation, can of course vary according to
platform, compiler etc.
Normal integers are up to 10 digits, after which they become long
integers, right ?
But if integers can be exactly represented, then why do they need two
types of integers (long and ... uhmm, let's say, normal). I mean,
their error will always be zero, no matter what kind they're of.
>Floats, on the other hand, are effectively the same as double on the C
>compiler for your platform.
>Does this answer your question?
More information about the Python-list