[Tutor] quick question

Dwight Hutto dwightdhutto at gmail.com
Fri Sep 28 07:31:33 CEST 2012


On Fri, Sep 28, 2012 at 1:26 AM, Brett Ritter <swiftone at swiftone.org> wrote:
> On Thu, Sep 27, 2012 at 10:18 PM, jh <xperimental22 at gmail.com> wrote:
>> The subtotal of your items is: 26010.850000000002
>>
>> My question here is, why does my subtotal have so many decimals when I never
>> went above 2 in my input?
>
> This is not actually a Python thing, it's a computer thing.  Computers
> represent numbers (everything) in binary, as you doubtless have heard.
>  The issue is that while 1 or 12 or 4562 are easily represented in
> binary, a number like "0.1" is less obvious.  Floating point numbers
> are stored as binary approximations that dont' work out to exactly the
> same thing.  (For _most_ purposes they are close enough, but if you
> are every dealing with highly precise math, there are libraries to
> help be more accurate)
>
> This is similar to how 1/3 can't be represented easily in decimal
> form.  (3 is hard number to use as a divisor in base 10.  It turns out
> that most digits are painful to use as divisors in base 2 (binary)
> except for 1,2,4, 8, or other powers of 2.)
>
> --
> Brett Ritter / SwiftOne
> swiftone at swiftone.org


That's a floating point error, not a round it off from the 3rd digit
in this case.

-- 
Best Regards,
David Hutto
CEO: http://www.hitwebdevelopment.com


More information about the Tutor mailing list