[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