On Tue, Mar 16, 2010 at 3:58 PM, P.J. Eby <p...@telecommunity.com> wrote: > At 09:58 AM 3/16/2010 -0500, Facundo Batista wrote: >> >> I'm +0 to allow these comparisons, being "Decimal(1) < .3" the same as >> "Decimal(1) < Decimal.from_float(.3)" > > Does Decimal.from_float() use the "shortest decimal representation" > approach?
No. It does exact conversions: >>> Decimal.from_float(1.1) Decimal('1.100000000000000088817841970012523233890533447265625') >>> Decimal.from_float(1.1) == 1.1 False >>> Decimal('1.1') == float('1.1') # returns False both pre- and post-patch False > If not, it might be confusing if a number that prints as '.1' compares > unequal to Decimal('.1'). Agreed, but this is just your everyday floating-point confusion, to be dealt with by social means (e.g., educating the programmer). Any technical solution that made "Decimal('1.1') == float('1.1')" evaluate to True would, I suspect, be a cure worse than the original disease. Mark _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com