Here and here: "except with zero never compare doubles for equality" (WHRoeder).
Yes except with 0, that means 0 is always 0.
By the way it's true for all integers up to 2^53 = 9,007,199,254,740,992 A double can represent all these integers accurately.
But what if you have two doubles a,b you shouldn't do if (a==b) but if (a-b==0.0) should work?
But what if this works 99 times and then it fails?
No, it's not reliable, the documentation provides 2 ways to do it correctly (and a lot of posts on this forum).