On Monday, 9 May 2016 at 10:16:54 UTC, Jens Mueller wrote:
Walter Bright via Digitalmars-d wrote:
Don Clugston pointed out in his DConf 2016 talk that:
float f = 1.30;
assert(f == 1.30);
will always be false since 1.30 is not representable as a
float. However,
float f = 1.30;
assert(f == cast(float)1.30);
will be true.
So, should the compiler emit a warning for the former case?
Since
assert(f == 1.30f);
passes I find the root cause lies in the implicit type
conversion from
float to double. Warning for those comparisons should be fine.
Shouldn't
mix them anyway.
I wonder what's the difference between 1.30f and
cast(float)1.30.
Jens
+1