Newsgroup: it.comp.www.asp
Titolo: Problemi valori euro e decimali

Ho creato delle pagine dinamiche che accedono ad un database Access
2000 in ASP e preleva delle coppie di valori prodotto-prezzo.
Il prezzo è in euro nel formato 123,56 ed il campo Access è del tipo
valuta.
In locale, con web server IIS integrato in WinXP italiano funziona
tutto bene.
Sul server in rete, invece, vengono sostituite le virgole con il punto
(notazione anglosassone) e mi scombussola il tutto quando devo
fare delle somme, interpetando la virgola non come decimale ma come
separatore delle migliaia.
Un profondo ringraziamento a chiunque può aiutarmi in questo problema.
Luca
---remove xxx before reply---
 

 separatore delle migliaia.
prova a mettere <%  Session.LCID = 1040  %> in modo da impostare la 
lingua sempre a Italiano, non sono sicuro che funzioni pero'....
Altrimenti devi chiederti ogni volta su che host girano le pagine ASP e 
agire di conseguenza: tipo sostituire le virgole con i punti, se il 
server ha come lingua predefinita l'italiano.
Mi e' capitato che i numeri decimali, ASP li stampasse con notazione 
italiana, e poi mi servivano su una query SQL (che funzionano con 
notazione anglosassone) e ho dovuto rimpiazzare ogni virgola con un 
punto per far funzionare il tutto...................
Non capisco perche' ASP/ACCESS sia cosi' *mal progettato* in certi 
casi.... cioe' perche' viene fatta confusione tra *valore* e 
*rappresentazione* di un numero o di una data (formato mm/dd/yyyy o 
dd/mm/yyyy: quanti casini!!): dovrebbero essere due cose ben distinte 
per non far confusione!
La cosa non accade per esempio in JSP (Java) dove valore e 
rappresentazione sono ben distinte!
Spero di esserti stato di aiuto.
CIAO!
-- 
matteodg

 (notazione anglosassone) e mi scombussola il tutto quando devo
Guarda che il problema e' praticamente identico a quello delle date...
Nel database i campi Currency, cosi' come i DateTime, vengono
memorizzati in un formato binario di cui a te programmatore non frega
UBM (Una Beata Mazza ;-)).
Cio' che ti importa e' solo il modo con cui i dati vengono ESTRATTI o
SCRITTI dal/sul database, e per fare questo le variabili vanno benissimo
perche' conterranno esattamente i dati che hai letto (Currency o
DateTime)!
Cio' che causa SEMPRE questo tipo di problemi e' solamente la loro
conversione in/da stringa!
Quindi una volta chiarito questo concetto la soluzione per svincolarsi
dal formato locale e' abbastanza semplice:
1) Se devi fare calcoli sui valori, tu li memorizzi in una variabile o
usi direttamente il campo: puoi fare tutti i calcoli che ti pare!
2) Se devi convertire un campo Currency in Stringa o viceversa, ti fai
le tue belle due funzioncine (ad es. Currency2String e String2Currency)
che utilizzano sempre il formato che preferisci (ad es. con la virgola
decimale invece del punto) che metti in un file #include cosi' le avrai
sempre disponibili
3) Quando devi presentare a video un valore letto dal database lo
converti con Currency2String
4) Quando devi mettere nel database un valore preso da un campo text di
una form (ad esempio), usi String2Currency.
Ciao!
--
   Alex Palmese
---
Sei anche tu stanco dei messaggi spam? Usa Terminator, il programma
anti-spam italiano FREEWARE! 
http://www.sertel.net/terminator/