Comparison issue
Jesse Phillips
jessekphillips+D at gmail.com
Mon Mar 19 07:17:27 PDT 2012
On Monday, 19 March 2012 at 12:50:02 UTC, bearophile wrote:
> James Miller:
>
>> writeln(v1 == 1); //false
>> writeln(v1 == 1.0); //false
>> writeln(v1 == 1.0f); //false
>> writeln(v1+1 == 2.0f); //true
>
> Maybe I'd like to deprecate and then statically forbid the use
> of == among floating point values, and replace it with a
> library-defined function.
>
> Bye,
> bearophile
I feel I should expand on bearophile's statement here. Checking
for equality in a float is usually wrong. After performing
operations on a float the accuracy if the number changes. So
performing any operations could result in your result being off
by a fraction
I.e. v1 could be (I'm not being acurate here as to what it, print
it out and see)
1.0000000000000000000001
0.9999999999999999999987
I think there is a std.math function called frequal or something.
More information about the Digitalmars-d-learn
mailing list