View Full Version : Decimali con Visula Basic
Ciao a tutti, sto iniziando a programmare in Visual Basic quindi scusate se farò domande anche stupide o scontate tanto sono cose semplici. Quello ceh vorrei sapere è come "tagliare" a soli due numeri decimali un calcolo, mi spiego meglio: ho creato due textbox, in una scrivo un valore e nell'altra ho dato un'istruzione che mi scorpori il 20% di quel valore immesso quindi in alcuni casi mi da valori con dopo la virgola un numero periodico come ad esempio 16,666666666666666. Io vorrei che in automatico mi mettesse solo due decimali dopo la virgola e di conseguenza mi arrotondasse. Come dovrei fare? Grazie mille e tanti saluti
ISTRUZIONE: Round
Round(espressione, numcifredecimali)
Restituisce un numero arrotondato in base al numero di cifre decimali specificato.
ciaoooooooooo
Ciao e grazie per la risposta, potresti farmi un esempio per favore? Scusa ma come ho detto sono proprio agli inizi, se mi puoi fare un esempio di una linea di codice ti sarei grato. Grazie e tanti saluti.
Dim ciao as double
ciao=Round("16,666666666666666",2)
msgbox ciao
Ti torna un messaggio con 16.67
Ciao e grazie di nuovo per la risposta. non ho ancora capito bene dove devo mettere l'istruzione, ti faccio vedere che istruzioni ho dato io per farmi calcolare i valori ad un commandbutton:
Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox "Devi inserire un valore nel campo valore", vbCritical, "Campo valore vuoto"
Else
Text2.Text = Text1.Text * 100 / 120
Text3.Text = Text1.Text * 20 / 120
Text4.Text = Text2.Text * 100 / 125
End If
End Sub
Grazie di nuovo e ciao.
Così:
Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox "Devi inserire un valore nel campo valore", vbCritical, "Campo valore vuoto"
Else
Text2.Text = Round(Text1.Text * 100 / 120, 2)
Text3.Text = Round(Text1.Text * 20 / 120, 2)
Text4.Text = Round(Text2.Text * 100 / 125, 2)
End If
End Sub
Ciao e grazie di nuovo, mi dice:"Errore di compilazione: Sub o fuction non definita" e mi evidenzia il primo Round Ed ho fatto copia e incolla dalla tua risposta, ho questa situazione ora:
Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox "Devi inserire un valore nel campo valore", vbCritical, "Campo valore vuoto"
Else
Text2.Text = Round(Val(Text1.Text) * 100 / 120, 2)
Text3.Text = Round(Val(Text1.Text) * 20 / 120, 2)
Text4.Text = Round(Val(Text2.Text) * 100 / 125, 2)
End If
End Sub
Io uso Visual Basic 5, vorrà dire qulcosa la versione?
Passami il progettino che ci do un occhiata! ;)
Lo metto in allegato. Grazie
A me questa sequenza nn da errore...
Text2.Text = Round(Text1.Text * 100 / 120, 2)
Text3.Text = Round(Text1.Text * 20 / 120, 2)
Text4.Text = Round(Text2.Text * 100 / 125, 2)
A me da quell'errore, ti allego due screen shot così lo vedi anche tu, forse così è meglio, non sarà perchè la versione 5 non prevede questa istruzione? Ciao e grazie
Non me li fà allegare troppo grandi, ma non sarà che quell'istruzione non è supportata nella versione 5?
Originariamente inviato da Bottega
Non me li fà allegare troppo grandi, ma non sarà che quell'istruzione non è supportata nella versione 5?
Può dardi che nn esista in VB5, solo che io nn lo consoco il 5 per cui nn saprei nemmeno dirti se ne esiste un altra!
Ci sarebbe da giocare con le stringhe e fare una funzione simile, però sicuramente è meglio se c'è ne una similile anche per il 5! :)
Ho risolto così:
Text2.Text = Format(Val(Text1.Text) * 100 / 120, "00.00")
Text3.Text = Format(Val(Text1.Text) * 20 / 120, "00.00")
Text4.Text = Format(Val(Text2.Text) * 100 / 125, "00.00")
Grazie per l'interessamento e tanti saluti.
lucasub2
16-12-2003, 10:59
Se non mi sbaglio c'è un'altra istruzione che sichiama TRUNC, però ora non ricordo bene se esiste e se tronca solo una parte o tutto!
Originariamente inviato da Bottega
Ho risolto così:
Text2.Text = Format(Val(Text1.Text) * 100 / 120, "00.00")
Text3.Text = Format(Val(Text1.Text) * 20 / 120, "00.00")
Text4.Text = Format(Val(Text2.Text) * 100 / 125, "00.00")
Grazie per l'interessamento e tanti saluti.
Si ma così se nn erro nn arrotonda! :)
Ciao, sì arrotonda pure, se gli fai fare lo scorporo dell'iva per esempio, che è quello a cui mi serviva, se metti 100 (valore ivato)come valore iniziale e vuoi sapere su 100 quanto è l'iva, che sarebbe 16,6 periodico (16,6666666666666666) come valore ti da 16,67. Ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.