I know we can't compare 2 floating point values using ==. We can only compare they are within some interval of each other. I know
if(val == 0.512)
is wrong due to errors inherent in floating point calculations and conversion to binary and should be
if (val in (0.512-epsilon, 0.512+epsilon))
But is 0 special? Can we compare floats exactly to 0? Or even that is incorrect? Particularly in the context of C# and Java?
double val = 0;
val = getVal();
if(val == 0)