Numerical Errors

Floating point arithmetic is only carried out to a finite accuracy by computer hardware. This means that there is

  1. a limited number of significant digits (about 6 decimal digits for 32-bit floats, more, perhaps 16 digits, for 64-bits etc.)
  2. a maximum floating point number
  3. a minimum +ve floating point number >0

1.0 = 1.0 - δ

Because of the finite accuracy, there is a floating point number, δ > 0.0, such that 1.0 - δ equals 1.0 as far as the computer hardware can tell.

Click on 'go' in the form below to see what δ is for the implementation of JavaScript on your computer:

δ is quite small, but it is certainly greater than zero.

Underflow

Mathematically, the following two equations are equal:

 big - (big'  - δ)  -- 1
(big -  big') + δ   -- 2
However, if big~big' then then equation #1 may loose accuracy. Consider the extreme case in which big=big'=1.0. Then equation #1 will evalute to zero, but equation #2 will evaluate to δ, not zero!

-- L.A., 1999