Always false float comparisons
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Mon May 9 06:46:57 PDT 2016
On 5/9/16 7:26 AM, Walter Bright wrote:
>> I wonder what's the difference between 1.30f and cast(float)1.30.
>
> There isn't one.
I know this is a bit band-aid-ish, but if one is comparing literals to a
float, why not treat the literal as the type being compared against? In
other words, imply the 1.3f. This isn't integer-land where promotions do
not change the outcome.
What I see here is that double(1.3) cannot be represented as a float. So
right there, the compiler can tell you, no, this is never going to be
true. Something stinks when you can write an always-false expression as
an if conditional by accident.
-Steve
More information about the Digitalmars-d
mailing list