On Sat, Mar 8, 2014 at 3:11 PM, Guido van Rossum <guido@python.org> wrote:Maybe not a deal breaker, but certainly another panel on the bikeshed.
>> How is Decimal==float implemented? Is it by calling Decimal(rhs) and
>> then comparing? If so, changing how Decimal(float) works won't break
>> the invariant, as it'll make the same conversion each time.
> There's a special function to convert the other operand for the purpose of
> comparisons, and it currently uses Decimal.from_float(). I am not (yet :-)
> proposing to change the behavior of that function -- it is and has always
> been the API function that does exact float-to-Decimal conversion.
> Decimal(repr(f)) == f returns False today (for the majority of float values
> anyway) and under my proposal Decimal(f) == f would also return False. I
> don't (yet :-) think that's a deal breaker.
It would make good sense to retain that invariant by making the
comparison use repr just like the constructor.