IEEE floating point is always an approximation of a number. For example, it would take infinite memory to store 1/3 as a floating point number. That is why when you do 30.0 * (1.0/3.0) it doesn't necessarily come out exactly 10.0 because of the "error" in the representation of 1.0/3.0 (for that expression, it's best to leave division last, so better to do (30.0 * 1.0) / 3.0 )
Unless it can be represented as a power of two (negative exponents) e.g. 1/4 1/8, it will always be an approximation.
In Computer Science, you learn about this and know to do the (ABS(delta) < epsilon) for numbers that are reasonably close relative to epsilon. Note that it will NOT work if you have huge numbers and want to see if they are within 0.1, e.g.
1,234,567.8 vs 1,234,567.9 because 32 bit IEEE cannot get to within 0.1 with that many digits.
What is the range of your real numbers? What is a good-enough value your "epsilon"? (not too small, not too big).