[MontelLUG] Mysql e decimali

Samuele samuele.zanin a tiscali.it
Ven 30 Set 2011 12:55:21 CEST


  Il 30/09/2011 12:42, Daneel Olivaw ha scritto:
> Giorno gente.
>
> Come tutti saprete (ma anche no), in Mysql si possono salvare numeri
> decimali dichiarandoli "Decimal", "Float" o "Double".
> Considerando che il numero che dovrò gestire avrà un massimo di 4
> cifre per la parte intera e due per la parte decimale ed è inserito
> dall'utente, quindi sempre positivo e mai risultato di calcoli o cose
> strane , pensavo di usare "Decimal", ma mi sono chiesto... "E gli
> altri?"

Per esperienza con altri motori di database, usa Decimal in quanto puoi 
impostare la precisione dopo la virgola che vuoi. Ormai non ricordo più 
il perché ed il percome, la rava e la fava (erano i tempi del passaggio 
da lira ad euro), però a causa del fatto che un numero viene decimale 
viene convertito per la memorizzazione in binario saltavano fuori con 
certi numeri cose simpatiche tipo: scrivevi 60.61 (precisione a 6 
decimali), andando a leggere il campo ti trovavi scritto 60.609999, 
mentre se scrivevi ad esempio scrivevi 60.62 continuavi a leggere 60.62. 
Quindi alla fine, si memorizzavano numeri su un campo a larghezza di 6 
decimali, ma alla fine al momento dell'output a video o per qualche 
calcolo (se necessario) si faceva e si fa l'arrotondamento a 5 decimali.
Nel tuo caso, ti inviterei a memorizzare 3 decimali. Ah, non so i 
dettagli del tuo programma, ma ho a che fare spesso con tizi che 
memorizzano prezzi in euro con 3 o 4 decimali.






More information about the montellug mailing list