Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    (VB6) Stringa che non somma i decimali

    Ciao a tutti.

    Ho il seguente codice che mi dovrebbe restituire come risultato la differenza tra duecelle di due tabelle diverse.

    FormUscita.LabelTOTVALOREMovimento.Caption = "Valore " & Format(Val(FormUscita.DataSpedizioni.Recordset.Fie lds("Valore")) - Val(FormUscita.DataUscite.Recordset.Fields("SOMMAV ALORE")), "CURRENCY")

    Solo che mi da sempre un risultato in cui mi arrotonda le cifre decimali a 0

    ES
    (FormUscita.DataSpedizioni.Recordset.Fields("Valor e")) = 15.58

    (FormUscita.DataUscite.Recordset.Fields("SOMMAVALO RE")=5.50

    il risultato dovrebbe essere 10.08
    invece mi restituisce 10.00

    Cosa puo' esserci di sbagliato??

    Grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    759
    E' "colpa" della funzione Val, che tronca il risultato quando incontra un carattere non numerico o diverso dal punto. I valori dei campi numerici sono invece rappresentati con la virgola (o altro carattere definito nelle impostazioni internazionali).
    Puoi rimediare usando CSng() o CDbl() in luogo di Val().

  3. #3
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Se i valori in formato stringa hanno la virgola come separatore decimale, ti conviene utilizzare CDbl o CSng al posto di Val

    Boolean

    Edit: Ops... già risposto Grumpy

  4. #4
    Grazie 1000 risolto

    uno è per la precisione singola e uno doppia giusto?

  5. #5
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    Esatto. CSng converte in un Single, l'altro in Double.

    Boolean

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.