Problème du Calcule En Visual Basic 6

Résolu
AljawharaSat Messages postés 4 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 13 mars 2009 - 13 mars 2009 à 13:48
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 16 mars 2009 à 20:42
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

cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
13 mars 2009 à 20:03
ne pas utiliser "Val" mais plutôt "CDbl"
Text12.Text = CDbl(Text11.Text) / 4
pas de virgule dans 55,5
CNTJC
3
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
13 mars 2009 à 14:14
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
0
AljawharaSat Messages postés 4 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 13 mars 2009
13 mars 2009 à 14:51
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
0
AljawharaSat Messages postés 4 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 13 mars 2009
13 mars 2009 à 14:56
désolé ça c'est les code :

Text12.Text = Val(Text11.Text) / 4
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
13 mars 2009 à 22:24
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 *
0
fatim1 Messages postés 17 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 21 novembre 2009
16 mars 2009 à 16:12
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!!!
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
16 mars 2009 à 20:42
Poste un nouveau topic pour ta question ... il y a peu de chances que quelqu'un te réponde ici !
0
Rejoignez-nous