JS Quiz: Vero o Falso? 0.1 + 0.2 non fa 0.3

Continua la serie JS Quiz! Siete pronti a rimettere in discussione cos'è "vero" e cos'è "falso"? Dopo aver fatto luce sulle identità segrete dei vostri oggetti, oggi mineremo le vostre sicurezze in Matematica:




<script> alert(0.5 - 0.2 == 0.3) //-> true alert(0.1 + 0.2 == 0.3) //-> false </script> Possibile??? Controlliamo il risultato delle operazioni: <script> alert(0.5 - 0.2) //-> 0.3 alert(0.1 + 0.2) //-> 0.30000000000000004 </script> Lo strano risultato della seconda operazione è dovuto al fatto che alcuni numeri decimali non si possono rappresentare perfettamente usando il sistema binario, su cui si basa l'oggetto Number di JavaScript. Di conseguenza, anche i metodi dell'oggetto Number quali toFixed() e toPrecision() soffrono di questa imprecisione.

Evitate quindi il più possibile le operazioni con i decimali ed usate piuttosto gli interi! Ad esempio, se dovete calcolate i prezzi in euro, calcolateli invece in eurocent e soltanto dopo usate substr, substring, charAt e/o simili per formattate gli output!

Commenti