Intanto ciao a tutti... assenza forzata da tanta nanna :sleepy: con tanta febbre :evil:
e veniamo al dunque, sperimentando, per una TextBox ho utilizzato del codice che aveva suggerito quel genio di vuott in un vecchio post
TextBox1.Text = Format(Replace(TextBox4.Text, ",", Null) / 100, "0.00")
bene, ora con il numero che scrivo vorrei far compiere una operazione, esempio:
TextBox2.Text = (TextBox1.Text * 5)
chiaramente mi da un errore perchè i campi non sono numerici... so che la cosa più facile è renderli tali,
ma ho qualche altra possibilità?
Grazie ;)
Se poi vuoi divertirti, puoi sempre usare addirittura la funzione esterna atof( ) della libreria condivisa .so di C: ;D
Library "libc:6"
' double atof (const char *__nptr)
' Convert a string to a floating-point number.
Private Extern atof(__nptr As String) As Float
Public Sub Form_Open()
TextBox1.Text = "12345.6789"
TextBox2.Text = Format(Replace(TextBox1.Text, ",", Null) / 100, "0.00")
TextBox3.Text = Str(atof(TextBox2.Text) * 5)
End
Restando al tuo esempio riportato, l'errore viene sollevato, poiché il numero rappresentato in caratteri stringa e restituito dalla funzione nativa Format( ), contiene una virgola, preludendo così ad un valore in virgola mobile.
In tal caso devi convertire quella rappresentazione numerica da valore di tipo Stringa, restituito poi dalla Proprietà .Text dell'Oggetto TextBox1, in valore di tipo genericamente numerico in virgola mobile mediante la funzione Val( ) .
Grande !!! funziona :2birre:
Dim vStringa As String
TextBox1.Text = Format(Replace(TextBox1.Text, ",", Null) / 100, "0.00")
vStringa = TextBox1.Text
TextBox2.Text = (Val(vStringa) * 5)