Newsgroup: it.comp.lang.visual-basic
Titolo: Ci riprovo: punto sul migliaio e decimali

Ciao a tutti nuovamente.
Non riesco a far in modo di visualizzare come voglio io i numeri che mi
compaiono in una text box di un covertitore di moneta.
Es: Io vorrei che la test box mi visualizzi questo risultato 1.936,27  (dato
dalla moltiplicazione di 1* 1936,27) ma se imposto il tipo di dati con
questo codice
Dim ŁLire as Currency
Text3.Text = Format(ŁLire, "#,###,##")
il risultato č 1.936 (e quindi perdo i decimali perchč arrotondato)
oppure se imposto cosě
Dim ŁLire
Text3.Text = Format(ŁLire, "#,###.00")
il risultato č 1.936,27 (quindi č giusto come vorrei io)
ma se eseguo questa moltiplicazione 100*1936.27 sempre con questo codice
Dim ŁLire
Text3.Text = Format(ŁLire, "#,###.00")
il risultato č 193.627,00 (e qui mi trovo una virgola con due zeri che io
non vorrei visualizzare ben sapendo che sono i decimali).
Infine utilizzando questo codice (con questa moltiplicazione 100*1936.27)
Text3.Text = Text1.Text * 1936.27
il risultato č 193627 (quindi senza " ,00 ) ma perdo il puntino sulle
migliaia.
Insomma io vorrei che nella textbox comparissero i due decimali qualora
fossero diversi da zero e nello stesso tempo vorrei anche l'inserimento del
puntino sulle migliaia (es. 193.627 e non 193.627,00)
Chi mi aiuta???
(preciso che sono alle prime armi e ho gia provato e riprovato e riprovato
in vari modi).
Ciao e grazie

questo codice
Ho risposto al thread precedente...
Ciao

Non vorrei dirti capperate ma se guardi nella guida scopri due cose:
Se desideri ottenere un numero riportato con il separatore di migliaglia lo
puoi fare solo se consideri quel numero non piu come numero ma stringa.
Per farti capire ti riporto l'esempio
MyStr = Format(5459.4, "##,##0.00")
In questo è palese il fatto che Mystr permette di giungere al tuo risultato
ma mystr è chiaramente una stringa.
Quindi se vuoi far comparire nella textbox devi di volta in volta
riconvertire la tua stringa con il separatore di migliaglia in numero e
viceversa.
Ti posto a me funziona perfettamente:
Dim £Lire As Currency
Dim £Lire2 As Currency
£Lire = 1936.27
£Lire = Format(£Lire, "####.##")
'MyStr = Format(5459.4, "##,##0.00")
Text1.Text = £Lire2
£Lire = 2 * Text1.Text
Text3.Text = Format(£Lire, "#,###.##")
Controlle le tue impostazioni nel pannello occhio che determinano tutto:
Saluti
Piero Romani
HomePage:
http://digilander.iol.it/vbsegreti
"Non dico mai non si può fare."

Se leggi un mio post di pochi giorni fa, ho spiegato
un modo abbastanza veloce per fare la punteggiatura.
Ciao Andrea

[cut]
a me pareva che una risposta di giovanni de rosa fosse cio che tu cercavi ma
siccome non ti ha soddisfatto [mah...] mi sono ricordato di qualcosa che
avevo di meno elegante ...
Public Function PF_cEuro(v£ire As String) As String
'prende il valore v£ire e lo trasforma in euro formattandolo quando è il
caso con 2 decimali : 0,00>>0 ;  0,10>>0,1 ;  0,12>>0,12
If Val(v£ire) = 0 Then
   PF_cEuro = "0":   Exit Function
End If:     PF_cEuro = Format$(v£ire / g_Euro, "###,###,###0.00") 'mette
sempre i due decimali
For I = 0 To 2 'tolgo i zeri finali o la virgola se è l'ultimo carattere
   If Right(PF_cEuro, 1) = "0" Or Right(PF_cEuro, 1) = "," Then
      PF_cEuro = Left(PF_cEuro, Len(PF_cEuro) - 1)
   Else
      Exit For
   End If
Next I
End Function