Two routes to the same number disagree
Exact equality on floats is not wrong in principle. Two doubles either are the same value or they are not, and == answers that correctly.
The problem is that it answers a question people are not asking. What is usually meant is "did these two computations produce the same mathematical quantity", and floating point does not preserve that.
Computing a quantity two algebraically equivalent ways gives two different roundings, and comparing them with == reports a difference that has no mathematical meaning. The previous lessons supply the reasons: rounding at every step, and cancellation that promotes it.
So comparison needs a notion of "close enough", which requires deciding how close and measured how. Neither has a universal answer, and both standard approaches fail in a specific, predictable way.
One case does deserve exact equality: comparing against a value that was assigned rather than computed. If a sentinel was set to 0.0 and never arithmetic'd, x == 0.0 is exactly right.

