[Tutor] Floating Confusion
Luke Paireepinart
rabidpoobear at gmail.com
Thu Aug 23 08:45:01 CEST 2007
Chris Calloway wrote:
> wormwood_3 wrote:
>
>> The second case is, of course, what is throwing me. By having a decimal point, "1.1" is a float type, and apparently it cannot be represented by binary floating point numbers accurately. I must admit that I do not understand why this is the case. Would anyone be able to enlighten me?
>>
>
> This is fairly standard computer science, not just Python. If you take
> freshman Fortran for scientists, you will eat, sleep, and breath this stuff.
>
> Is one tenth any power of 2?
>
> Like how 2**-1 is 0.5? Or how 2**-2 is 0.25? Or 2**-3 is 0.125? Or 2**-4
> is 0.0625. Oops, we went right by 0.1.
>
> Any binary representation of one tenth will have a round-off error in
> the mantissa.
>
I've always wondered:
There are numbers in Decimal that can't be represented accurately in
Binary without infinite precision.
But it doesn't go the other way. Rational base-2 numbers are rational
base-10 numbers. I'm supposing this is because base-10 is a higher base
than base-2.
So I've wondered that, even though Pi is an irrational number in
base-10, is it possible that it's a simple (rational) number in a higher
base?
I mean, I suppose a base of Pi would result in Pi being 1, but what
about integer bases?
Is there some kind of theory that relates to this and why there's not a
higher base with an easy representation of Pi?
I'd be interested to read about this but I'm not sure what to look for.
-Luke
More information about the Tutor
mailing list