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'

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

Reply via email to