On 07/21/2011 08:46 AM, Web Dreamer wrote:
If you do not want to use 'float()' try:

int(x.split('.')[0])


This is right.

But, the problem is the same as with int(float(x)), the integer number is
still not as close as possible as the original float value.

I would in fact consider doing this:

int(round(float(x)))

This is wrong, since there is a loss of information in the float cast:

>>> float('9007199254740993.0')
9007199254740992.0

Notice the last digit switched from a 3 to a 2? Floats in python don't have arbitrary accuracy. You would need to import decimal and use it for rounding to work properly.

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

Reply via email to