Float-urile nu sunt de acord nici cu ele însele: cum să supraviețuiești IEEE 754
De ce 0.1 + 0.2 nu este 0.3 și cum să trăiești cu această realitate matematică.

Dezvoltatori, țineți-vă de scaune: numerele în virgulă mobilă nu se înțeleg nici cu ele însele. Articolul de la Merca Earth dezvăluie o durere veche de când lumea — 0.1 + 0.2 în JavaScript dă 0.30000000000000004. Și nu este o eroare, ci o caracteristică a standardului IEEE 754.
De ce se întâmplă?
Totul ține de aritmetica binară: fracțiile zecimale precum 0.1 nu pot fi reprezentate exact cu un număr finit de biți. Este ca și cum ai încerca să scrii 1/3 în sistem zecimal — obții un infinit de 0.3333... Doar că la float calculatorul rotunjește și începe magia.
Câteva moduri de a nu înnebuni:
- Folosiți numere întregi (numărați bănuți în loc de lei).
- Utilizați biblioteci precum
decimal.jspentru calcule critice. - Pentru comparații, folosiți un epsilon (marja de eroare).
- Sau acceptați și rotunjiți la zecimala dorită.
Dezvoltatorii care s-au confruntat cu asta în CI sau la plată știu: mai bine petreci o oră să înveți IEEE 754 decât să cauți un bug în deploy-ul de noapte.
Comentariul studioului METABYTE: Și nouă ne place când numerele se comportă previzibil — mai ales în aplicațiile financiare. Dacă float-urile voastre au început să se revolte, chemați-ne: le vom îmblânzi cu biblioteci potrivite și teste riguroase.
URMATORUL PAS
Ti-a placut abordarea?
Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.