magomac Inviato 12 Gennaio 2007 Segnala Condividi Inviato 12 Gennaio 2007 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 Altre opzioni di condivisione...
hal2001 Inviato 12 Gennaio 2007 Segnala Condividi Inviato 12 Gennaio 2007 ci provo: ho fatto una ricerchina con google ed è venuta fuori questa pagina: http://www.abaconline.com/?q=node/27 (funzione numdec) Visita il mio sito con tutorial e software per Mac Vuoi usare iChat? registrati QUI o QUI ΛΛ MSN! Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 12 Gennaio 2007 Autore Segnala Condividi Inviato 12 Gennaio 2007 Grazie ma questa è una funzione di conversione.... a me serviva un nome di una variabile MySQl.... grazie ciao Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 13 Gennaio 2007 Segnala Condividi Inviato 13 Gennaio 2007 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é 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() 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 Altre opzioni di condivisione...
magomac Inviato 13 Gennaio 2007 Autore Segnala Condividi Inviato 13 Gennaio 2007 Chiarissimo! Guarda cercando su Google mi sono imbattuto in money_format... perfetto! risolto tutto! Grazie mille.... Link al commento Condividi su altri siti Altre opzioni di condivisione...
magomac Inviato 13 Gennaio 2007 Autore Segnala Condividi Inviato 13 Gennaio 2007 Dimenticavo... alla fine ho usato variabili float! Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 13 Gennaio 2007 Segnala Condividi Inviato 13 Gennaio 2007 occhio che le float sono traditrici quando si tratta del valore "zero" ;-) 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 Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.