Nel linguaggio di programmazione QBasic eseguo PRINT 0.04-(2000.07-2000.03). Ottengo la visualizzazione di 8.300692E-05 invece che di 0, come mi aspetterei. Fenomeni analoghi accadono con tutti i linguaggi di programmazione.
    Consideriamo un foglio di calcolo elettronico così impostato:

 AB
1=2000.07-2000.03=(A1-0.04)*10^50
2=2000.07-2000.03=IF(A1=0.04;1;0)

["=IF(test;P;Q)" si comporta come "IF test THEN PRINT P ELSE PRINT Q"; in alcuni fogli di calcolo, a seconda delle opzioni scelte, viene usato "SE" al posto di "IF"]

    Se visualizziamo i valori, dando alla cella A2 l'opzione di rappresentare i numeri con 20 cifre, otteniamo:

 AB
1 0.04  -3.64E36 
2 0.03999999999996360000  0

In altre situazioni può anche capitare di credere che il valore di una cella sia 0, come appare sul visore, mentre 0 non è, e questo può dar luogo a successive elaborazioni molto "sbagliate".

È opportuno (per tutti i cittadini) essere consapevoli dell'esistenza di fenomeni di questo genere.

Spiegazione: l'essere un numero finito, ossia con periodo "0", dipende dalla base:
2000.07 → 11111010000.000100011110101110000101000111101… → 11111010000.0001000111101
2000.03 → 11111010000.000001111010111000010100011110101… → 11111010000.0000011110110
Non sono numeri binari finiti che vengono registrati arrotondati, nel caso del QBasic, a 24 cifre binarie; la sottrazione tra questi due numeri ha come risultato il numero binario 0.0000101000111 (che in base dieci diventerebbe 0.0399169921875, ovvero 3.991699E-02, non 0.04). Poi da:

0.04 → 0.00001010001111010111000010100011110101110000… → 0.0000101000111101011100001010
viene sottratto 0.0000101000111000000000000000

dando luogo a 0.0000000000000101011100001010 che in base dieci diventa lo 0.000083… formito dal programma.