The documentation says that they're equal if they are "within a very small value (epsilon)".
Epsilon is documented as "the smallest value a float can have different from zero".
How small is that? FloatMinNormal
or FloatMinDenormal
depending on IsFlushToZeroEnabled
, which as you can see from source code would be about 1e-38, much smaller than 0.00000000000001f
.
For non-zero values, the exact computation depends on the order of magnitude of the numbers, you can check out the source code for the precise formula.
Some numbers (e.g. 0.1) can't be represented exactly with a float. This is why Approximately
can be more useful than straight equality. It is a complex topic, though, that needs more than a SO answer to fully develop. If you want to learn more, maybe start there: https://floating-point-gui.de/