On Wed, Nov 19, 2008 at 10:01 PM, srinivasan srinivas <[EMAIL PROTECTED]> wrote: > Yes it works for most of the cases. But it doesn't for the following case: > >>>> str(abs(int(1234567.89)-1234567.89)) > '0.889999999898'
Since you really care about significant figures here, have you considered using decimal rather than float as, IIRC, it handles this correctly? Cheers, Chris -- Follow the path of the Iguana... http://rebertia.com > > Thanks, > Srini > > > ----- Original Message ---- > From: Tino Wildenhain <[EMAIL PROTECTED]> > To: srinivasan srinivas <[EMAIL PROTECTED]> > Cc: Jeremiah Dodds <[EMAIL PROTECTED]>; python-list@python.org > Sent: Wednesday, 19 November, 2008 7:33:46 PM > Subject: Re: Getting fractional part from a float without using string > operations > > srinivasan srinivas wrote: >> Yes. But it didn't give only the expected decimals. >> For ex: >> >>> a = 1.23 >> >>> abs(int(a) -a) >> 0.22999999999999998 >> I would like to get the result '0.23' only. > > well, thats what get stored internally - there > is no way around it if you are using floating > point numbers: > >>>> 0.23 > 0.23000000000000001 > > but str() handles the rounding correctly: > >>>> print 0.23 > 0.23 > >>>> print abs(int(a) -a) > 0.23 > > See also http://en.wikipedia.org/wiki/Floating_point > for the problems with FP figures. > > Regards > Tino > > > > Get perfect Email ID for your Resume. Grab now > http://in.promos.yahoo.com/address > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list