Always false float comparisons

Joseph Rushton Wakeling via Digitalmars-d digitalmars-d at puremagic.com
Mon May 16 08:13:37 PDT 2016


On Tuesday, 10 May 2016 at 07:28:21 UTC, Manu wrote:
> Perhaps float comparison should *always* be done at the lower 
> precision? There's no meaningful way to perform a float/double 
> comparison where the float is promoted, whereas demoting the 
> double for the comparison will almost certainly yield the 
> expected result.

Assuming that's what you want, it's reasonably straightforward to 
use

     feqrel(someFloat, someDouble) >= float.mant_dig

... to compare to the level of precision that matters to you.  
That's probably a better option than adjusting `==` to always 
prefer a lower level of precision (because it's arguably accurate 
to say that 1.3f != 1.3).


More information about the Digitalmars-d mailing list