Metalshark
Metalshark

Reputation: 8482

Drop extraneous decimal places when using Python's decimal.Decimal

When using Python's decimal.Decimal class we now have a need to drop extraneous decimal places. So for instance '0.00' becomes '0' and '0.50' becomes '0.5'. Is there a cleaner way of doing this than converting to a string and manually dropping trailing zeros and full stops?

To clarify we need to be able to dynamically round the result without knowing the number of decimal places in advance and potentially output an integer (or a string representation of one) if no decimal places are needed... is this already built-in to Python?

Upvotes: 2

Views: 165

Answers (1)

falsetru
falsetru

Reputation: 369344

Use Decimal.normalize:

>>> Decimal('0.00').normalize()
Decimal('0')
>>> Decimal('0.50').normalize()
Decimal('0.5')

Upvotes: 4

Related Questions