Come la maggior parte dei linguaggi oggigiorno disponibili anche javascript dispone di funzioni specifiche per l’arrotondamento dei decimali tra le quali toFixed è sicuramente una di quelle più utilizzate.
Capita infatti di dover effettuare calcoli numerici con precisione specifica (pensiamo ad esempio all’euro e i suoi 2 decimali) quindi è naturale pensare di usare toFixed laddove si abbia il bisogno di approssimare un valore…. peccato che toFixed non funzioni sempre bene.
Il problema è noto e non riguarda solo javascript (ahimè).
In particolare l’implementazione di toFixed in javascript, o meglio, il modo in cui javascript gestisce la rappresentazione dei numeri in virgola mobile può dare luogo a problemi di precisione.
Perché? perché javascript esegue i calcoli in virgola mobile in binario e non in decimale e quindi in alcuni casi ci si può imbattere i numeri che non possono essere rappresentati in binario con la necessaria precisione.

Non vi fidate? malfidenti! verificate voi stessi qui

Altro esempio stupido? Cosa vi aspettate come risultato della seguente operazione in javascript: 1.23 – 1 ?
Non avrete mica pensato ad un 0.23 vero? No! javascript vi tornerà uno stupendo 0.22999999999998

Così è, sapendolo ci si risparmia diversi mal di testa e magari si adottano le giuste contromisure.
Per la toFixed potete optare per la funzione che ho usato nell’esempio riportato sopra oppure, se volete una soluzione omnicomprensiva, vi suggerisco questa interessante libreria.

approssimare numeri con javascript

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *