In effetti avevi sbagliato posto.
Se ti va bene il numero arrotondato, puoi fare così:
ValueBox1.Value = Round(123.456789, -3)
il codice che uso è questo;
vb4.value = vb1.Value / Sqr(1 - (vb2.value / vb3.value) ^ 2)
vb2.Foreground = Color.blue
vb3.Foreground = Color.DarkBlue
Dim vb4 As Float
vb4.value = Round(123.456789, -3)
in pratica dovrebbe calcolarmi la differenza temporale fra volo e terrestre ad una velocità prossima a quella della luce. l'errore che mi da è che non è un oggetto nel form. ripeto non è determinante ai fini del calcolo che funziona benissimo , ma solo per una questione di semplicità. grazie ancora.
Ti consiglio di seguire i suggerimenti che ti sono stati dati, tutti, a partire da come si usa un forum.
Prova a scrivere il calcolo così:
vb4.value = Round(vb1.Value / Sqr(1 - (vb2.value / vb3.value) ^ 2), -3)
Che è poi il suggerimento che ti è stato dato subito, messo in pratica.
....io davo per scontato che vb4, vb1, vb2 e vb3 fossero i nomi di ValueBox.
In fondo non hai torto.
Temo che steci57 abbia prima dichiarato le variabili "vb2", "vb3" e "vb4" come Oggetti della Classe "ValueBox"; lo si nota da questa prima parte del suo codice postato:
vb4.value = vb1.Value / Sqr(1 - (vb2.value / vb3.value) ^ 2)
vb2.Foreground = Color.blue
vb3.Foreground = Color.DarkBlue
e poi ha utilizzato l'identificatore di variabile "vb4" per dichiarare una variabile di tipo Float; è evidente in questa riga:
ma poi ha ri-utilizzato quell'identificatore "vb4" come puntatore dell'Oggetto "ValueBox", forse pensando di poter fare un passo indietro.
Ciò è evidente qui:
vb4.value = Round(123.456789, -3)
Vuott, se le cose stanno come hai intuito, allora suggerisco a steci57 di riscrivere il codice così:
Apri un nuovo progetto grafico QT Application e nominalo come ti pare.
Disegna nella FMain quattro ValueBox senza rinominarle le prime tre serviranno a contenere i valori per il calcolo la quarta restituirà il risultato della formula.
Sotto le valuebox disegna un Button1 e nella proprietà Text scrivi Calcola il valore.
Fai doppio click sul button e all'interno del codice FMain.class fra i marcatori Public Sub Button1_Click() e End scrivi questo codice:
ValueBox4.Value = Round(ValueBox1.Value / Sqr(1 - (ValueBox2.value / ValueBox3.value) ^ 2), -3)
Poi avvii il progetto, scrivi i corretti valori nelle prime tre valuebox e agisci sul pulsante cliccandoci sopra.
Occorre precisare che è inutile rinominare le ValueBox con vb1, vb2 ecc. tanto vale lasciare i nomi originali ValueBax1, ValueBox2 ecc. per rinominare con criterio occorre dare agli oggetti, ma anche alle variabili, nomi significativi e volendo usare anche i suggerimenti del linguaggio Gambas3 far precedere il nome significativo da un profisso (qui si va un po tutti in ordine sparso) ad esempio potresti definire il nome di una ValueBox che contiene un valore temporale con vbxTemp mentre una variabile di tipo Float che contiene un valore temporale la nominerai fTemp.
Esercitati sul progettino per rinominare le ValueBox e definire variabili a cui passare i valori per poi fare il calcolo e ripassarlo al quarto valuebox.