On Tue, Mar 16, 2010 at 3:58 PM, P.J. Eby <pje at 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4