TGViewer
feed linuxpeople feed linuxpeople @linuxpeople_feed · 377 subscribers
Post #2225 576
💣 #LoSapeviChe
0,1 + 0,2 NON FA 0,3 😱 ??
Non per i nostri PC almeno 😂

I calcolatori non comprendono nativamente il concetto di "numeri con virgola", di conseguenza si è dovuto pensare ad un metodo per rappresentarli-
Il metodo che è stato studiato si chiama IEEE 754, del quale vi lascio la pagina wikipedia qui.

In poche parole: il numero è rappresentato in memoria come la successione di 3 numeri interi:
- il segno (che può essere 1 o 0)
- l'esponente, che nella variante 32 bit ha 8 bit dedicati (valori da 0 fino a 255 o da -127 a 127)
- la mantissa, che nella variante 32 bit ha 23 bit dedicati, da decifrare in base ad altri parametri.

Normalmente il calcolo si effettua così :
(-1)ˢ × 2ᵉ × M
Dove la s vale 0 o 1 in base al segno, la e rappresenta l'esponente mentre la M la mantissa, il quale primo bit in genere si ignora (è chiamato anche hidden bit).

Tuttavia esistono una serie di casi limite in cui il calcolo si effettua in maniere diverse, ad esempio con esponente che vale 255 e per qualunque valore non nullo della mantissa si ha un "NaN" (not a number). Ma non farò qui una lezione sui numeri in virgola mobile 😂.

Quello che è più interessante, dopo questa piccola panoramica, è che con questi sistema purtroppo non si possono rappresentare tutti i numeri con la virgola, né tutte le operazioni.
Il caso più celebre è quello di 0.1 + 0.2 che non risulta 0.3, ma 0.30000000000000004 ! In verità non è nemmeno esatto, infatti continuando a calcolare altre cifre si scoprirebbe che dopo quel 4 ci son altre cifre, ma non è tanto questo il punto.

Il punto è che spesso si da la colpa a linguaggi o framework per quella che semplicemente è l'ignoranza di aspetti teorici e limiti del linguaggio e della rappresentazione. Questo purtroppo è il vero motivo per cui tutti possono essere programmatori oggi e scrivere codici su codici seguendo semplicemente una banale documentazione. Ma non tutti possono costruire un prodotto informatico che sia mediamente affidabile e duraturo nel tempo-

Per saperne di più su come gestiscono i floating point i vari linguaggi, esiste un bellissimo sito che raccoglie una serie di esempi:

https://0.30000000000000004.com

Ci si può trovare per alcuni anche come gestire i calcoli in tutta sicurezza.
Wikipedia IEEE 754 Lo standard IEEE per il calcolo in virgola mobile (IEEE 754) (ufficialmente: IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std 754-1985) o anche IEC 60559:1989, Binary floating-point arithmetic for microprocessor systems) è lo standard più…
  • 👍 8
More from @linuxpeople_feed
  1. Mar 17, 2025❇️ Trucco del giorno Problemi con l'auto-mute di alsa e pipewire? L'auto-mute è quella car…
  2. Apr 14, 2024❇️ Trucco del giorno Come utilizzare più chiavi ssh con git da terminale! Innanzitutto gen…
  3. Feb 16, 2024❇️ Trucco del giorno RIcordate tree? Usatelo per vedere quanto spazio occupa ogni cartella…
  4. Feb 15, 2024❇️ Trucco del giorno richiamate l'ultimo argomento del terminale con la combinazione: ALT+…
  5. Feb 2, 2024❇️ Trucco del giorno Forse non vi servirà mai.... però, se volete, potete simulare un tty…
  6. Jan 24, 2024❇️ Trucco del giorno Trucco per arcieri 🏹 (ovvero per ArchLinux) Avete perso il messaggio…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →