D'autres réponses ont déjà souligné que la représentation des nombres flottants est une question épineuse, pour dire le moins.
Puisque vous ne donnez pas assez de contexte dans votre question, je ne peux pas savoir si le module décimal peut être utile pour vos besoins:
http://docs.python.org/library/decimal.html
Entre autres, vous pouvez spécifier explicitement la précision que vous souhaitez obtenir (à partir de la documentation):
>>> getcontext().prec = 6
>>> Decimal('3.0')
Decimal('3.0')
>>> Decimal('3.1415926535')
Decimal('3.1415926535')
>>> Decimal('3.1415926535') + Decimal('2.7182818285')
Decimal('5.85987')
>>> getcontext().rounding = ROUND_UP
>>> Decimal('3.1415926535') + Decimal('2.7182818285')
Decimal('5.85988')
Un exemple simple de mon invite (python 2.6):
>>> import decimal
>>> a = decimal.Decimal('10.000000001')
>>> a
Decimal('10.000000001')
>>> print a
10.000000001
>>> b = decimal.Decimal('10.00000000000000000000000000900000002')
>>> print b
10.00000000000000000000000000900000002
>>> print str(b)
10.00000000000000000000000000900000002
>>> len(str(b/decimal.Decimal('3.0')))
29
Peut-être que cela peut aider? decimal est en python stdlib depuis 2.4, avec des ajouts en python 2.6.
J'espère que cela aide, Francesco