File: gawk.info, Node: Comparing FP Values, Next: Errors accumulate, Prev: Inexact representation, Up: Inexactness of computations 16.4.1.2 Be Careful Comparing Values .................................... Because the underlying representation can be a little bit off from the exact value, comparing floating-point values to see if they are exactly equal is generally a bad idea. Here is an example where it does not work like you would expect: $ gawk 'BEGIN { print (0.1 + 12.2 == 12.3) }' -| 0 The general wisdom when comparing floating-point values is to see if they are within some small range of each other (called a "delta", or "tolerance"). You have to decide how small a delta is important to you. Code to do this looks something like the following: delta = 0.00001 # for example difference = abs(a - b) # subtract the two values if (difference < delta) # all ok else # not ok (We assume that you have a simple absolute value function named 'abs()' defined elsewhere in your program.) If you write a function to compare values with a delta, you should be sure to use 'difference < abs(delta)' in case someone passes in a negative delta value.