Quando 0.1 + 0.2 non fa 0.3: i numeri che il computer non sa contare

Per chi programma, prima o poi arriva il momento dello shock:

0.1 + 0.2 = 0.30000000000000004

Non è un bug del linguaggio. È il modo in cui funzionano i computer.

Il problema non è il computer, è la matematica

I computer rappresentano i numeri usando il sistema binario.
Il problema è che molti numeri decimali (come 0.1) non hanno una rappresentazione finita in base 2, proprio come 1/3 non ha una rappresentazione finita in base 10.

Quindi il computer memorizza:

  • un’approssimazione,
  • estremamente precisa,
  • ma non perfetta.

Floating point: veloce ma imperfetto

I numeri in virgola mobile (floating point) sono progettati per:

  • essere veloci,
  • occupare poca memoria,
  • funzionare bene per la maggior parte dei calcoli scientifici.

Non sono progettati per essere “esatti”.

Quando l’errore conta davvero

Nella maggior parte dei casi l’errore è invisibile.
Ma in ambiti come:

  • finanza,
  • contabilità,
  • calcoli legali,

può diventare un problema serio.

Per questo, in quei contesti, si usano:

  • numeri interi,
  • decimali a precisione fissa,
  • librerie specializzate.

Lezione chiave: il computer non sbaglia.
Fa esattamente ciò che gli chiediamo, anche quando non ci piace il risultato.

Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui

Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂



Commenta