Double confirming the calculation method

Back to topics list To post a new topic, please log in or register
avatar
228
jollydragon 2016.01.19 04:33
 

 

a. Double confirm with you that it's not necessary to use '2' below but ok to use '1' below to compare for "int" types. Correct? 

1.  if (a > b)




 2. if (a - b > Point / 2.)

 

 

b. How many digits does the number precision reach while need to use '2' for comparing? 

avatar
Moderator
3407
GumRai 2016.01.19 05:37 #
 
If comparing integers you have no need to worry about floating point precision.
avatar
31
wqking 2016.01.19 10:52 #
 
"a > b" should always work as you expected.
avatar
12985
WHRoeder 2016.01.19 14:02 #
 
wqking: "a > b" should always work as you expected.
Wrong for doubles; it's your not understanding floating point and that some numbers can't be represented exactly. (like 1/10.) Double-precision floating-point format - Wikipedia, the free encyclopedia see The == operand. - MQL4 forum
avatar
31
wqking 2016.01.19 14:26 #
 
WHRoeder:
Wrong for doubles; it's your not understanding floating point and that some numbers can't be represented exactly. (like 1/10.) Double-precision floating-point format - Wikipedia, the free encyclopedia see The == operand. - MQL4 forum


OP was talking about the operator ">", not "==".


avatar
12985
WHRoeder 2016.01.19 15:24 #
 

Same thing. If because of floating point round off what should be equal could be come greater.

IF you want to open when price exceeds the last bar high, Bid > High[1] could be true when Bid == High[1] because of round off. If that is unacceptable equality is important.

If the possibility of equality is important, you must understand the links posted.

IF point is 0.00001 then 0.999995000000 is the same price as 1.000004999999 but they are not equal.

avatar
Moderator
3407
GumRai 2016.01.19 22:33 #
 

The OP was asking about comparing integers

jollydragon:

 

a. Double confirm with you that it's not necessary to use '2' below but ok to use '1' below to compare for "int" types. Correct? 

 

avatar
228
jollydragon 2016.01.20 02:14 #
 

 

GumRai:

The OP was asking about comparing integers

 

 

 

Thank you. But who can help clarify on this question:

b. How many digits does the number precision reach while need to use formula '2' for comparing?  

avatar
12985
WHRoeder 2016.01.20 14:27 #
 
  1. GumRai: The OP was asking about comparing integers
    2. if (a - b > Point / 2.) (or a > b + Point/2) is for floating point. Price A is definitely greater then B

  2. jollydragon: b. How many digits does the number precision reach while need to use formula '2' for comparing? 
    The digits in Point.
    IF point is 0.00001 then 0.999995000000 is the same price as 1.000004999999 i.e. 1.00000 but they are not equal.
Back to topics list  

To add comments, please log in or register