On 3/18/2010 12:34 PM, Steven D'Aprano wrote: > On Fri, 19 Mar 2010 05:27:06 am Glenn Linderman wrote: > > >>> Do you envisage any problems from allowing this instead? >>> >>> >>>>>> Decimal('1.1')< 2.2 >>>>>> >>> True >>> >> Yes. >> >> As any non-naïve float user is aware, the proper form of float >> comparisons is not to use< or> or == or !=, but rather, instead of >> using< (to follow along with your example), one should use: >> >> Decimal('1.1') - 2.2< epsilon >> > And yet we allow > > 1.1< 2.2 > > instead of forcing users to do the "proper form". One can only wonder > why the various standards (actual and de-facto) for floating point > allows comparisons at all. > Hard to tell 1.1 < 2.2 from the second line of diff = 1.1 - 2.2 diff < epsilon Hard to enforce the "proper form", without being omniscient, and the "proper form" isn't always as simple as my example, to be truly proper often requires a lot more code (and a lot more omniscience). I'm +1 on adding an exception for Decimal/float comparisons, -0 on allowing it to be turned off to achieve compatible behavior, since Raymond pointed out that the compatible sorting behavior isn't stable in the presence of int, Decimal, and float. > But they do, and so does Python, and frankly even if the only reason is > to satisfy lazy coders who don't have a requirement for high accuracy, > then that's a good reason in my book, and one equally applicable to > Decimal and float. > A point well understood, but I personally would rather force Decimal/float comparisons to be explicitly converted to be lazily compared, if the arithmetic operations are forced to be explicit.
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