Euroconvertitori, occhio ai decimali!

Euroconvertitori, occhio ai decimali!

Un lettore fa notare come diversi euroconvertitori disponibili su Internet forniscano spesso risultati inattesi. Ecco perché
Un lettore fa notare come diversi euroconvertitori disponibili su Internet forniscano spesso risultati inattesi. Ecco perché


Roma – Gli euroconvertitori disponibili in rete sono molti, ma i risultati sono spesso imprevisti. In particolare ho notato diversi problemi comuni legati ad un utilizzo errato e pericoloso nell’uso della virgola e del punto decimale per indicare i centesimi. Ecco qualche esempio.

Euro Europeo .
Se si inserisce 0,52 euro si ottiene come risultato 1.006,86 lire, e fin qui tutto a posto. Ma se si inserisce 0.001 euro si ottiene 1.936,27 Lire!

Stesso problema peraltro riscontrato in un altro programma reperibile qui che dà nella conversione da euro a lire risultati addirittura senza specificare i decimali! 0,52 euro = 1007 Lire e 0.52 = 100686 Lire. In questo caso, dunque, scrivere 52 euro o 0.52 è lo stesso!

Un altro euroconvertitore reperibile qui fa di peggio: se il valore è espresso utilizzando la virgola, viene arrotondato senza considerare i decimali (cosa che avviene, invece, utilizzando il punto come separatore). Esempio: 2.58 euro = 4996 lire (corretto) mentre 2,58 euro= 3873 Lire! Risultato completamente errato.

Stesso problema anche per EuroConverter e Eraclito , un convertitore scritto in flash.

Il problema è comune a diversi compilatori, fra cui il diffusissimo Visual Basic, il cui compilatore, se utilizzato in maniera “grossolana”, introduce errori di conversione (con l’utilizzo della virgola al posto del punto come separatore decimale).

Anche alcuni sorgenti in VB non aiutano lo sviluppatore. Un esempio è il progetto di euroconvertitore reperibile su VBItalia : anche qui non si fa distinzione fra 2.58 euro e 258 euro, mentre utilizzando la virgola tutto procede come sperato.

Alcuni convertitori, come Easy Currency Converter, presentano invece il problema opposto: utilizzando la virgola al posto del punto come separatore per i decimali le conversioni avvengono senza tenere conto delle cifre decimali espresse. In questo caso 2.58 euro sono uguali a 4993.8 Lire mentre 2,58 euro restituiscono come risultato (errato) 3871.22 Lire.

È importante sottolineare che altri euroconvertitori più evoluti, come quello disponibile sul sito Bipop , si mettono invece al riparo da possibili problemi di conversione.
Bipop, ad esempio, indica chiaramente di non utilizzare il punto per separare le migliaia restituendo un errore se si utilizza la virgola. In questo caso si è al riparo da ambiguità su quale sia il separatore dei decimali. Altri linguaggi, poi, hanno per default la specificazione di quale separatore utilizzare, come JavaScript, che indica all’utente che l’utilizzo della virgola al posto del punto non è permesso ed il numero scritto non può essere utilizzato (“Not A Number”).

Spero sia stato utile questo mio contributo a tutti coloro che per affari utilizzano l’euro e vogliano avere la certezza di adoperare software che producano i risultati sperati, specie quando si tratta di denaro.

Paolo Iorio

http://piorio.supereva.it

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il 3 gen 2002
Link copiato negli appunti