Vai al contenuto

Variabili MySQL per fattura


magomac

Messaggi raccomandati

Ciao! Che tipo di variabili mi consigliate di usare per le varie cifre di una fattura???

Se uso int non posso avere numeri con la virgola, se uso decimal (gli ho dato come lunghezza 4,2) non so bene perchè QUALSOIASI SOMMA che deve fare php la trasforma in 99.99 (punto non virgola!), se uso varchar fa i calcoli senza i numeri decimali...

Cosa posso usare???????

Grazie!

Ciao

Link al commento
Condividi su altri siti

se uso decimal (gli ho dato come lunghezza 4,2) non so bene perchè QUALSOIASI SOMMA che deve fare php la trasforma in 99.99 (punto non virgola!)

Se vuoi te lo spiego io il perché :gira:

decimal(x,y) :

x = numero TOTALE di cifre da usare ignorando la virgola (ossia: parte intera PIÙ parte decimale)

y = numero di cifre riservate alla parte decimale

da cui discende

x-y = numero massimo di cifre che si possono usare per la parte intera

Traducendo nel tuo caso:

La dichiarazione decimal(4,2) significa che tu vuoi usare per il tuo numero quattro cifre IN TUTTO e di queste due sono riservate ai decimali. Ne consegue che per la parte intera tu puoi usare al massimo 4-2= 2 cifre.

In altre parole, tu con decimal(4,2) forzi i valori della tua variabile a restare nel range compreso tra 0.00 e 99.99.

Se fai una somma del tipo 40.50+71.75, il risultato sarebbe 112.25 che però ha CINQUE cifre in tutto (tre prima della virgola e due dopo): in base alla tua dichiarazione mysql ne può usare solo quattro quindi ti tronca il valore al massimo consentito, ossia 99.99. E questo è esattamente quanto ti succede.

Puoi risolvere quindi il tuo problema in un modo molto ma molto semplice: valuta quanto sarebbe (in ordine di grandezza) il valore massimo che puoi ottenere dalla tua somma e poi ridefinisci decimal di conseguenza.

Es. se sai che la tua somma può arrivare alle migliaia ma rimane sempre sotto a 10000, allora hai bisogno di 4 cifre intere+2 dopo la virgola=6 cifre in tutto. La tua dichiarazione sarà quindi decimal(6,2).

Se la tua somma supera 10000 ma resta sempre sotto 100000, allora ti bastano 5+2=7 cifre e la tua dichiarazione sarà decimal(7,2) e così via.

Chiaro?

P.S. se poi stai associando questo calcolo a una visualizzazione via php, dai un'occhiata a questa funzione php: money_format() :gira:

Serve aiuto? Posso darti una mano in

Webmasters - Aiuto Software - Da Windows a Mac

Mappa Utenti ItaliaMac

[[miao]]

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...