decimali nel calcolo

ciao a tutti, ho due campi nel mio db che hanno due valori numerici come stringhe: la qt ed il prezzo unitario.

in una label visualizzo come segue (dopo aver recuperato con una sqlquery i dati)

 if rs <> Nil Then
      While Not rs.EOF
                totimponibile=totimponibile+(rs.IdxField(4).DoubleValue*rs.IdxField(5).DoubleValue)
                rs.MoveNext
      Wend
      rs.Close
    End If
    db.Close
    LblTotImp.Text=totimponibile.ToText

il problema che se ad esempio il prezzo unitario 386,90 il prodotto mi riporta: 772,00 non tenendo conto dei decimali!!

dove sbaglio?

grazie, ciao
ciro

ciao,

a me era capitata una situazione simile ed il problema era che i dati erano salvati col punto anzich con la virgola…

I dati nel db dovrebbero essere registrati come numeri, quindi intrinsecamente con il punto. La virgola solo un modo di visualizzarli. Non confondete le cose.

ciao Antonio, be nel mio caso la cosa era obbligata perche il sito salvava i dati in campi text… nel suo caso non so… ma potrebbe darsi che il problema risieda in quello specie se chi legge o scrive usa il sistema anglosassone…

Non importa. Quando leggi da un campo text, un file di testo etc. devi sempre convertire il dato “testuale” in dato numerico reale (anche se in rappresentazione testuale) altrimenti non ci capirai più nulla.

La virgola per i decimali o eventuali separatori per le migliaia sono solo abbellimenti testuali che possono (anzi dovrebbero) essere localizzati (ovvero utilizzare quelli che l’utente ha impostato sul sistema)
se devi convertire un numero in un testo (per salvarlo ad esempio in un db dove il campo è testuale) utilizza str(val) e non format(val)

il problema proprio quello della virgola al posto del punto!

il fatto che leggo tali importi da un csv dove sono messi con la virgola…

alla fine ho risolto con un replaceall(…,",",".") prima del calcolo…

grazie a tutti…