On Aug 12, 5:37 am, Zentrader <[EMAIL PROTECTED]> wrote:
> On Aug 11, 9:40 am, "Adam W." <[EMAIL PROTECTED]> wrote:
>
> > After a fair amount of troubleshooting of why my lists were coming
> > back a handful of digits short, and the last digit rounded off, I
> > determined the str() function was to blame:
>
> > >>> foonum
>
> > 0.0071299720384678782
>
> > >>> str(foonum)
> > '0.00712997203847'
>
> > Why in the world does str() have any business rounding my numbers, and
> > how do I get around this?
>
> If 15 digit precision is a concern, I would suggest that you us the
> decimal class instead of floating points.  Floating point problems on
> X86 machines are well 
> documented.http://docs.python.org/lib/module-decimal.htmlhttp://pydoc.org/2.4.1/decimal.htmlhttp://gmpy.sourceforge.net/

If you are concerned with precision of *communication*:

The problem is not with floating "points" in general; floating point
arithmetic can be done using a decimal representation for the numbers.
The problem is not with "X86" machines in particular; just about all
modern machines have floating point hardware which implements the IEEE
754 standard for binary flaoting point arithmetic. The problem is with
trying to represent in one base (e.g. 10) a non-integer number that is
expressed in a different base (e.g. 2) -- where the number can be
represented exactly only in one base (e.g. 1./10.) or in neither (e.g.
1./3.)

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to