prezzo_ok = 103.68
prezzo_ok = 87.4
totale_ok = cdbl(prezzo_ok)+cdbl(prezzo_ok1)
stampo il totale
totale_ok = 11242
è errato perchè dovrebbe essere 19108
ovvero 191.08
Dove sbaglio... ?
prezzo_ok = 103.68
prezzo_ok = 87.4
totale_ok = cdbl(prezzo_ok)+cdbl(prezzo_ok1)
stampo il totale
totale_ok = 11242
è errato perchè dovrebbe essere 19108
ovvero 191.08
Dove sbaglio... ?
cint
non è da te, mimmo. cint coi decimali?Originariamente inviato da Mems
cint
embè ??
![]()
stamo a guardà ?
Il problema sembra stia nel fatto che in prezzo_ok ci sono 2 decimali in prezzo_ok1 solo 1 decimale...
infatti se faccio 103.68 + 87.40 il risultato è quello corretto.
Come faccio quindi a capire (senza splittare) che prezzo_ok contenga 1 o due decimali ?
a me funzia. posta il codice vero
in effetti funziona se scorporo di valori...
il codice (parte)
n.b i valori mio_valore sono estratti da un file xml che hanno una formattazione "100.00"codice:if valore <> "EUR" THEN prezzo_ok = (mio_valore1 / valuta_ok ) * euro_value else prezzo_ok = mio_valore2 end if if valore_rt <> "EUR" THEN prezzo_ok1= (mio_valorert1 / valuta_rt ) * euro_value else prezzo_ok1 = mio_valorert2 end if 'calcolo totali totale_ok = cdbl(prezzo_ok)+ cdbl(prezzo_ok1) response.write totale_ok & "ddddddddddddddddddd "
ho fatto la prova con isnumeric e risultano tutti valori numerici.
![]()
questo è il codice che ho provato. funzia. punto.
codice:prezzo1=103.68 prezzo2=87.4 prezzox=cdbl(prezzo1)+cdbl(prezzo2) response.write " " & prezzox
Io continuo a riscontrare il problema...
questo è il codice con relativo debug:
codice:if valore <> "EUR" THEN prezzo_ok = (objNode.selectSingleNode("Amount").nodeTypedValue / valuta_ok ) * euro_value response.write "prezzo_ok inside"& prezzo_ok &" " else prezzo_ok = objNode.selectSingleNode("Amount").nodeTypedValue response.write "prezzo_ok inside"& prezzo_ok &" " end if if valore_rt <> "EUR" THEN prezzo_ok1= (objNode.selectSingleNode("../../..//ReturnList/Return/Price/Amount").nodeTypedValue / valuta_rt ) * euro_value response.write "prezzo_ok1 inside"& prezzo_ok1 &" " else prezzo_ok1 = objNode.selectSingleNode("../../..//ReturnList/Return/Price/Amount").nodeTypedValue response.write "prezzo_ok1 inside"& prezzo_ok1 &" " end if 'calcolo totali response.write valore &" " response.write valore_rt &" " totale_ok = Cdbl(prezzo_ok1) + Cdbl(prezzo_ok) response.write "TOTALE = " & totale_ok & " "
questo è quello che stampa
prezzo_ok inside103.68
prezzo_ok1 inside87.4
EUR
EUR
11242
oppure
prezzo_ok inside144.69
prezzo_ok1 inside144.69
EUR
EUR
TOTALE = 28938
come "vedete" i valori sommati ritornano un valore senza formattazione ne virgole ne punti...
eppure la logica sembra quella usata da Optime.
prova a mettere questo
codice:'calcolo totali response.write valore &" " response.write valore_rt &" " prezzo_ok1 = Cdbl(prezzo_ok1) prezzo_ok = Cdbl(prezzo_ok) response.write "ok1...: " & prezzo_ok1 &" " response.write "ok...: " & prezzo_ok &" " totale_ok = Cdbl(prezzo_ok1) + Cdbl(prezzo_ok) response.write "TOTALE = " & totale_ok & " "
ho risolto....
era un problema di formato dati nella costruzione del valore.
Grazie comunque.