Python Decimal doesn\'t support being constructed from float; it expects that you have to convert float to a string first.
This is very inconvenient since standard
The "official" string representation of a float is given by the repr() built-in:
>>> repr(1.5) '1.5' >>> repr(12345.678901234567890123456789) '12345.678901234567'
You can use repr() instead of a formatted string, the result won't contain any unnecessary garbage.