Detonio
Messages postés9Date d'inscriptionmercredi 4 octobre 2006StatutMembreDernière intervention 8 octobre 2007
-
9 oct. 2006 à 16:59
Detonio
Messages postés9Date d'inscriptionmercredi 4 octobre 2006StatutMembreDernière intervention 8 octobre 2007
-
10 oct. 2006 à 19:26
Bonjour tout le monde.
Jeune acquisiteur de VB6 je me suis mmis dans la tête de réussir une calculatrice personnellle.
Mais voila, rien ne se passe comme je le veut. C'est pour ca que je demande de l'aide ici. Voici mon code (ci dessous) et le probleme c'est qu'il ne prend pas compte le calcul des nombres décimaux ! Exemple 1-0.3333=1 ... c'est un petit probleme comme meme pour une calculatrice :D.
Merci de votre aide !
Code :
Dim nb As Single 'valeur du premier nombre saisie
Dim operation As Byte ' 0 = addition; 1=soustraction; 2=multiplication; 3=division
Dim r As String
Dim l As Integer
Dim i As Integer, fact As Integer, n As Single ' Variables pour calculer la factorielle
Private Sub Form_load()
nb = 0
Text1.Text = ""
'initialisation des variables
End Sub
Private Sub Command_plus_Click()
If Text1.Text <> "" Then operation 0 '0 addition
nb = Val(Text1.Text)
Text1.Text = ""
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_moins_Click()
If Text1.Text <> "" Then
operation = 1 '1=soustraction
nb = Val(Text1.Text)
Text1.Text = ""
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_fois_Click()
If Text1.Text <> "" Then
operation = 2 '2=multiplication
nb = Val(Text1.Text)
Text1.Text = ""
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_div_Click()
If Text1.Text <> "" Then
operation = 3 '3=division
nb = Val(Text1.Text)
Text1.Text = ""
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_egal_Click()
If operation = 0 Then 'addition
Text1.Text = Val(nb) + Val(Text1.Text)
End If
If (operation = 1) Then 'soustraction
Text1.Text = Val(nb) - Val(Text1.Text)
End If
If operation = 2 Then 'multiplication
Text1.Text = Val(nb) * Val(Text1.Text)
End If
If operation = 3 Then 'division
Text1.Text = Val(nb) / Val(Text1.Text)
End If
End Sub
Private Sub Command_carre_Click()
If Text1.Text <> "" Then
Text1.Text = Val(Text1.Text) * Val(Text1.Text)
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_rac_Click()
If Text1.Text <> "" Then
Text1.Text = Val(Sqr(Text1.Text)) 'La fonction SQR est la fonction racine carré en language VB6
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_inver_Click()
If Text1.Text <> "" Then
Text1.Text = 1 / Text1.Text
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_fact_Click()
If Text1.Text <> "" Then
fact = 1
n = Val(Text1.Text)
For i = n To 1 Step -1
fact = fact * i
Next i
Text1.Text = fact
Else
MsgBox "Saisissez un chiffre"
End If
End Sub
Private Sub Command_C_Click()
Text1.Text = Delete
End Sub
Private Sub Command_retour_Click()
If Text1.Text <> "" Then
l = Len(Text1.Text)
r = Left(Text1.Text, l - 1)
Text1.Text = r
Detonio
Messages postés9Date d'inscriptionmercredi 4 octobre 2006StatutMembreDernière intervention 8 octobre 2007 9 oct. 2006 à 17:17
ouai mais le probleme c'est que si tu refais - appuie sur - "-" puis -appuie- sur "6" alors il te mettra -6 ... Voila le probleme ! Et ca m'enerve un peu
Vb Lover
Messages postés221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 20105 10 oct. 2006 à 09:56
désolé, je viens de voir une petite faute dans mon code, c'est bien un
"end select" et pas un "end if"... et s'il y a d'autres petites
erreurs, c'est que je fais du php depuis quelques semaines, et que je
n'ai pas VB sous la main pour vérifier mon code.
je vois aussi que tu utilises des "single" et pas des "double", donc
utilises peut-être la commande "csng" (ou qqch comme ça) à la place de
"cdbl"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Detonio
Messages postés9Date d'inscriptionmercredi 4 octobre 2006StatutMembreDernière intervention 8 octobre 2007 10 oct. 2006 à 19:26
Le probleme c'est que je ne connait pas encore la fonction Case ... il faut encore attendre quelque semaine !
Donc en attendant je vais étudiés cela et attendre d'autre proposition me permettant de garder les fonctions que je connais déja.
Mais encore merci de m'aider je t'en suis reconnaissant.