Как пробовать самый простой и, вероятно, самый эффективный подход? Метод normalize () удаляет все самые правые конечные нули.
from decimal import Decimal
print (Decimal('0.001000').normalize())
# Result: 0.001
Работает в Python 2 и Python 3.
- Обновлено -
проблема только в том, что @ BobStein-VisiBone отметил, что цифры, такие как 10, 100, 1000 ... будут отображаться в экспоненциальном представлении. Это можно легко исправить, используя следующую функцию:
from decimal import Decimal
def format_float(f):
d = Decimal(str(f));
return d.quantize(Decimal(1)) if d == d.to_integral() else d.normalize()