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
When you say "preserving value as the user has entered", why not just store the user-entered value as a string, and pass that to the Decimal constructor?