It’s certainly subtle and the method and parameters you choose matter a great deal, so one needs to understand both the underlying mathematics of the problem at hand and the underlying mathematics of the comparison method. It’s fair to say few people are in this category.

Absolute tolerances are good for when the numbers represent distances or angles. Your manufacturing method has a certain accuracy and there’s no point spending more decimal places than needed.

The problem with absolute tolerances is that they don’t scale. When dealing with small numbers you have a lot of accuracy. For example there are *loads* of distinct values between 1.0 and 2.0. But as the numbers get bigger, so do the gaps between them. There are far fewer distinct values between 1,000,001 and 1,000,002.

Arithmetic inaccuracies affect the least significant digits of numbers first, but those digits have a much bigger magnitude when the numbers are big.

Relative comparisons sort of deal with this issue, but the choice of factor is difficult.

Topological comparisons cut out the middleman, by testing how many distinct values there are between numbers. It automatically scales with the magnitude of the values in question, and the thresholds are usually easy to remember values like 5 or 10 or 50.

Sadly, sometimes you need more than one comparison to get the real answer you’re looking for.

Floating point maths is *hard*…