English

## Double Comparison

 2034 gooly 2015.08.07 08:43 #   I am using things like this:```#define isZero(x) ((fabs(x) < 0.000000001) ```
 13130 WHRoeder 2015.08.09 14:35 #   The problem has nothing to do with precision (float vs double.)The comparators work fine. The problem is with the equals. Is the equality important?If you code Bid > trigger, is it OK for that to be true when Bid and Trigger are the same price? If you code Bid >= trigger, is it OK for it to be true when Bid is slightly below Trigger because of round off? ```//        1        2        3        4        5        6        7        8        9       10 double t=1/10.0 + 1/10.0 + 1/10.0 + 1/10.0 + 1/10.0 + 1/10.0 + 1/10.0 + 1/10.0 + 1/10.0 + 1/10.0; Print(t,"=1.0?",t==0); // 0.9999999999999999=1.0?false```If neither can be true, the equality is important, and you must understand The == operand. - MQL4 forum You can NOT use NormalizeDouble because that will not work on metals, (point != ticksize,) and NormalizeDouble uses Digits.```if( Bid - trigger >  0          ) // Bid >  trigger or possibly Bid == trigger if( Bid > trigger               ) // equivalent. if( Bid - trigger >  ticksize/2 ) // Bid >  trigger if( Bid - trigger > -ticksize/2 ) // Bid >= trigger ```