On Fri, Mar 7, 2014 at 6:15 PM, Guido van Rossum firstname.lastname@example.org wrote:
Or, Decimal(repr(some_float)), which DWIM.
Because I haven't seen anyone else bring this up, using a non-exact conversion breaks the invariant "Decimal(f)==f".
There are so many pairs of numeric types that break that invariant that it might not be a big deal; but in all other cases the invariant is broken because it is theoretically impossible.
from decimal import Decimal f = 2.2 print(Decimal(f)==f) print(Decimal(repr(f))==f)