Problème du Calcule En Visual Basic 6 [Résolu]

Signaler
Messages postés
4
Date d'inscription
samedi 28 février 2009
Statut
Membre
Dernière intervention
13 mars 2009
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
Salut les amis








J'ai un problème avec la calcule en VB6 .





Exemple





[18.5+(18.5×2)]/3= 18.5





Mais Le VB6 fait ça :





[18.5+(18.5×2)]/3 =18,3333333333333





comment régler cette probléme













merci

7 réponses

Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

ne pas utiliser "Val" mais plutôt "CDbl"
Text12.Text = CDbl(Text11.Text) / 4
pas de virgule dans 55,5
CNTJC
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Bonjour

les accolades " [ "  et   " ] " ne s'utilisent pas en VB6, ce sont les parenthèses qu'il faut employer
         (18.5 + (18.5))/3 = 18.33333333333
ton exemple de calcul n'est pas exact ==> "= 18.3...."
de plus le séparateur décimal est le point " . " et non pas la virgule "18,3.."

CNTJC
Messages postés
4
Date d'inscription
samedi 28 février 2009
Statut
Membre
Dernière intervention
13 mars 2009

je veut faire ça mon ami :

55.5/3=18.5

mais le Visual Basic fait ça

55.5/3=18.33333...

le Code

Private Sub Text17_Click()
Text17.Text = Val(Text13.Text) + Val(Text16.Text) * 2
End Sub
Messages postés
4
Date d'inscription
samedi 28 février 2009
Statut
Membre
Dernière intervention
13 mars 2009

désolé ça c'est les code :

Text12.Text = Val(Text11.Text) / 4
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Détail pour Visual Basic, dans l'expression
14.a+9 il va considérer qu'il faut calculer 14,a + 9 ...
Donc le . (qui remplace X dans une expression littérale) devient *
Messages postés
17
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
21 novembre 2009

Salut.
Moi j'ai deux tables compte(numero_compte,numero_adhesion,solde) et
depot(numero_piece_depot,numero_compte,numero_adhesion,montant_depot,date_depot).
Je veux qu'après un dépôt , le champ solde de compte soit mis à jour(solde=solde + montant_depot).
J'arrive à enregistrer correctement dans la table depot mais sans pouvoir régler le
cas de la table depot.
S'il vous plaît aidez moi. Voici mon code :

Private Sub CmdajoutDepot_Click()
Dim adhes
Dim cpt
adhes = Txtadhes.Text
cpt = Txtnumcompte.Text
Connect
Rs.Open "Select * from depôt ", conDB, adOpenKeyset, adLockOptimistic
If Txtnumpiece.Text "" Or Txtadhes.Text "" Or Txtnumcompte.Text = "" Or Txtmttdepot.Text = "" Or Txtdatdepot.Text = "" Then
MsgBox "Erreur de saisie : Veuillez remplir tous les champs", vbCritical, "Erreur de Données.."
Exit Sub
Else
If Rs.EOF = True Then 'Ajout dans table depot
Rs.AddNew
Rs.Fields(0) = Txtnumpiece.Text
Rs.Fields(1) = Txtadhes.Text
'Rs.Fields(2) = Txtnumcnimand.Text
Rs.Fields(3) = Txtnumcompte.Text
Rs.Fields(4) = Txtmttdepot.Text
Rs.Fields(5) = Txtdatdepot.Text
Rs.Update
Rs.Close
Connect
Rs.Open "Select nouveau_solde from compte where numero_compte= '" & Txtadhes.Text & "' and numero_adhesion='" & cpt & "'  ", conDB, adOpenKeyset, adLockOptimistic
'If Rs.EOF = True Then 'Mis à jour du compte

  Rs("nouveau_solde") = Rs("nouveau_solde") + Val(Txtmttdepot)
Rs.Update
Rs.Close
'End If
MsgBox "Enregistrement effectué avec Succès", vbInformation, "Enregistrement.."

Txtnumpiece.Text = ""
Txtadhes.Text = ""
Txtnumcompte.Text = ""
Txtmttdepot.Text = ""
Txtdatdepot.Text = ""
Exit Sub
End If
While Not Rs.EOF
If Rs.Fields(0) = Txtnumpiece Then
MsgBox "Un dépôt de numéro " & Txtnumpiece & " existe déja", vbInformation, "Enregistrement.."
Rs.Close
Exit Sub
End If
Rs.MoveNext
Wend

Rs.AddNew
Rs.Fields(0) = Txtnumpiece.Text
Rs.Fields(1) = Txtadhes.Text
Rs.Fields(3) = Txtnumcompte.Text
Rs.Fields(4) = Txtmttdepot.Text
Rs.Fields(5) = Txtdatdepot.Text
Rs.Update
Rs.Close

MsgBox "Enregistrement effectué avec Succès", vbInformation, "Enregistrement.."
Txtnumpiece.Text = ""
Txtadhes.Text = ""
Txtnumcompte.Text = ""
Txtmttdepot.Text = ""
Txtdatdepot.Text = ""
End If
End Sub

Merci de répondre!!!
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Poste un nouveau topic pour ta question ... il y a peu de chances que quelqu'un te réponde ici !