Autore Topic: [RISOLTO]conversione valuta  (Letto 655 volte)

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
[RISOLTO]conversione valuta
« il: 17 Maggio 2010, 23:37:55 »
c'è un modo per convertire un float in valuta? mi basterebbe anche solo un modo per scrivere il float in una label in formato valuta 1000.00 ---> € 1.000,00. Ciao grazie
« Ultima modifica: 18 Maggio 2010, 00:12:20 da doublemm »
Matteo DoubleMM Mion

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: conversione valuta
« Risposta #1 il: 17 Maggio 2010, 23:45:15 »
Puoi usare questa funzione fatta da fsurfing
Codice: [Seleziona]
PUBLIC SUB formtvaluta(stringa AS String) AS String

DIM p, p1, itemp, itemp1 AS Integer
DIM initstringa AS String

''''sostituzione o aggiunta della virgola

      IF InStr(stringa, ",") <> 0 THEN
          stringa = Replace(stringa, ",", ".")
      ENDIF     
      IF InStr(stringa, ".") <> 0 THEN
          stringa = Replace(stringa, ".", ",")
      ELSE
          stringa = stringa & ",00"
      ENDIF

'''''arrotondamento a due decimali


      p = InStr(stringa, ",")

      p1 = Len(stringa) - p

      initstringa = Left(stringa, p - 1)

      IF p1 = 2 THEN
          stringa = stringa
      ELSE IF p1 <= 1 THEN
          stringa = stringa & "0"
      ELSE IF p1 > 2 THEN
          itemp = CInt(Mid(stringa, p + 1, 2))
          itemp1 = CInt(Mid(stringa, p + 1 + 2, 1))
          IF itemp1 >= 5 THEN
              INC itemp
          ENDIF
          IF itemp = 100 THEN
              stringa = CString(CInt(initstringa) + 1) & ",00"
          ELSE
              stringa = initstringa & "," & CString(itemp)
          ENDIF
      ENDIF

'''''''''''aggiunta puntini ogni 1000     

      IF Len(stringa) >= 7 THEN
        stringa = Mid(stringa, 1, (Len(stringa) - 6)) & "." & Right(stringa, 6)
      ENDIF

      IF Len(stringa) >= 11 THEN
        stringa = Mid(stringa, 1, (Len(stringa) - 10)) & "." & Right(stringa, 10)
      ENDIF

      IF Len(stringa) >= 15 THEN
        stringa = Mid(stringa, 1, (Len(stringa) - 14)) & "." & Right(stringa, 14)
      ENDIF

      IF Len(stringa) >= 19 THEN
        stringa = Mid(stringa, 1, (Len(stringa) - 18)) & "." & Right(stringa, 18)
      ENDIF

RETURN stringa

END

Io l'ho messa in un modulo chiamato "Funzioni", poi nel form faccio cosi:
Codice: [Seleziona]
textbox1.Text = Funzioni.formtvaluta(prezzo)

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: conversione valuta
« Risposta #2 il: 18 Maggio 2010, 00:02:11 »
ho aggiunto la funzione al modulo chiamo la funzione mandandogli la variabile da modificare
Codice: [Seleziona]
formtvaluta(tbianco)

se analizzo stringa prima di return
Codice: [Seleziona]
Message.Info(stringa, "OK")
RETURN stringa
la stringa è stata modificata ed è giusta, ma nella sub chiamante stringa prende valore FALSE. come si fa per mantenere il valore di stringa quando ritorna alla sub che ha chiamato la funzione?

Matteo DoubleMM Mion

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: conversione valuta
« Risposta #3 il: 18 Maggio 2010, 00:07:12 »
devi assegnare il valore restituito da quella funzione ad una variabile...

Immagina di avere una funzione di nome Funz che restituisce un intero....basta fare

Codice: [Seleziona]
DIM intero AS Integer

intero = Funz(parametro)

ed hai una variabile che come valore ha quello restituito dalla tua funzione

Offline doublemm

  • Maestro Gambero
  • ****
  • Post: 445
    • Mostra profilo
Re: conversione valuta
« Risposta #4 il: 18 Maggio 2010, 00:11:40 »
grazie risolto. Ogni tanto mi perdo in un bicchiere d'acqua.
Matteo DoubleMM Mion

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: conversione valuta
« Risposta #5 il: 18 Maggio 2010, 00:13:40 »
grazie risolto. Ogni tanto mi perdo in un bicchiere d'acqua.

È normale...siamo qui per questo....

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: [RISOLTO]conversione valuta
« Risposta #6 il: 18 Maggio 2010, 03:16:13 »
@ Golia

Ma non era piu' semplice scrivere TextBox1.Text = Format(<tuo valore>,"$,0.00") ;)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: [RISOLTO]conversione valuta
« Risposta #7 il: 18 Maggio 2010, 13:15:27 »
Perchè proprio non la sapevo :D
Mi aveva incuriosito quel
Citazione
$,0.00
ma pensavo che lo avevi modificato tu per gridbox