Другие ответы уже указывали, что представление плавающих чисел является, по меньшей мере, тернистым вопросом.
Поскольку вы не дают достаточный контекст, в вашем вопросе, я не могу знать, если десятичный модуль может быть полезным для ваших нужд:
http://docs.python.org/library/decimal.html
Среди других вещей, которые вы можете явно указать точность, что вам (из документов):
>>> 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')
Простой пример из моего приглашения (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
Возможно, это может помочь? decimal находится в python stdlib с версии 2.4 с дополнениями в python 2.6.
Надеется, что это помогает, Франческо
если х изначально ули, почему актеры? –
-1: Нет примеров требуемого вывода для разных значений 'x'. Без примеров мы можем только догадываться, в чем проблема. –