Consideriamo due numeri, A e B, quasi uguali tra li loro. Per semplicità possiamo immaginare che la loro trascrizione all’interno delle stringhe di bit sia di questo tipo
A xxxxxxxxxxxx.xxxxxxxa B xxxxxxxxxxxx.xxxxxxxb
Come si osserva, i due numeri A e B differiscono solo per l’ultima cifra decimale e quindi, se calcolassimo la loro differenza il risultato ottenuto sarebbe qualcosa di questo tipo
A-B 0000000000.0000000c
Quello che si ottiene, quindi, è una notevole perdita di significatività poiché tutte le cifre che esprimevano la precisione di A e B sono diventate 0 ad eccezione dell’ultima cifra: siamo passati, dunque, da due numeri con una certa precisione ad un terzo valore con una potenza enorme e negativa. Una perdita così importante ottenuta in una sola operazione viene definita Catastrophic Cancellation. Questo tipo di errore si verifica anche nel calcolo della varianza o nella somma di due numeri molto diversi tra loro. Prendiamo in esame il secondo caso e consideriamo un numero molto grande, indicato con la lettera C, ed un altro molto piccolo, indicato con la lettera D
C xxxxxxxxxxxxxx.xxxx D x.xxxxxxxxxxxxxxx
A causa del diverso allineamento perderò tutta la precisione del numero più piccolo. Esistono alcuni algoritmi che introducono termini di correzione per preservare le cifre significative (l’algoritmo di Newmaier ne è un esempio).