So, what’s the problem ? Well it would appear that comparing a parameter of type double with a field of type double won’t necessarily end up with matching values, even after the field has been set equal to the parameter. For the actual details of the problem see this;
A better question would be why doesn’t the compiler generate a warning for this ? You can just imagine some poor developer somewhere scratching his head over why this doesn’t work, or worse, only doesn’t work in production… it hardly seems to be a well known or obvious issue.