I'm comparing floats in Java right now and the simplest formula is:Math.abs(a - b) < THRESHOLDWhen naming your variable for the threshold of difference, should you name it delta or epsilon? Specifically, which of the two is the correct term for the smallest value that a floating-point number can represent?Is the term programming language specific, or is it universal across languages?
When comparing floats, what do you call the threshold of difference?
math
Epsilon in maths and engineeringIn maths and engineering in general:Delta is generally used to refer to a difference, which can be of any scale.Epsilon is generally used to refer to a negligible quantity.and epsilon seems more appropriate in your case. Epsilon in computer scienceIn computer science in particular, the term epsilon also refers to machine espilon which measures the difference between 1.0f and the smallest float which is strictly larger than 1.0f. That latter number is 1.00000011920928955078125f for floats in Java and can be calculated with:float f = Float.intBitsToFloat(Float.floatToIntBits(1f) + 1);The definition of machine epsilon is consistent with the general use of epsilon described above.Comparing floatsNote however that before comparing floats for proximity, you need to have an idea of their scale. Two very large and supposedly very different float can be equal:9223372036854775808f == 9223372036854775808f + 1000000000f; //this is true!And inversely, there might be many possible float values (and several orders of magnitude) between two small floats which differ by the machine epsilon only. In the example below, there are 10,000,000 available float values between small and f, but their difference is still well below the machine epsilon:float small = Float.MIN_VALUE; // small = 1.4E-45float f = Float.intBitsToFloat(Float.floatToIntBits(small) + 100000000); // f = 2.3122343E-35boolean b = (f - small < 0.00000011920928955078125f); //true!The article linked in GlenH7's answer investigates float comparison further and proposes several solutions to overcome these issues.