Erreur dans l'addition

Résolu
andregoub Messages postés 83 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 mai 2011 - 7 août 2006 à 10:51
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 7 août 2006 à 17:33
Bonjour
j'ai fait un petit Programme en me servant de l'objet class j'ai une erreur au niveau de l'addition au lieu d'additionner
le résultat est exemple 3+3 = 66
je vous mets le code je sais pour certain c'est du code enfantin

'Module-level variables to hold property values:
Private mVal1
Private mVal2


Public Function Multiplication()
    Multiplication = mVal1 * mVal2
End Function


Public Function Division()
    If mVal2 <> 0 Then
        Division = mVal1 / mVal2
    Else
        Division = "Undefined"
    End If
End Function
Public Function Addition()


Addition = mVal1 + mVal2
End Function


Public Function Soustraction()
Soustraction = mVal1 - mVal2
End Function


Public Property Let Value1(Setting)
    ' Store setting in module-level variable.
    mVal1 = Setting
End Property


Public Property Let Value2(Setting)
    ' Store setting in module-level variable.
    mVal2 = Setting
End Property


Public Function Hypotenuse()
    'Calculate the hypotenuse of a right-angled
    'triangle (the side opposite the right side).
    Hypotenuse = Sqr((mVal1 ^ 2) + (mVal2 ^ 2))
End Function

 
dédé[8D]

12 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 août 2006 à 11:32
Doublon corrigé ;)

Type tes variables, tu auras bien moins de surprises !!!

'Module-level variables to hold property values:
Private mVal1 As Double
Private mVal2 As DoublePublic Function Multiplication() As Double
    Multiplication = mVal1 * mVal2
End Function

Public Function Division()  As Double
    If mVal2 <> 0 Then
        Division = mVal1 / mVal2
    Else
        Division = "Undefined"
    End If
End Function
Public Function Addition() As Double

Addition = mVal1 + mVal2
End Function

Public Function Soustraction() As Double
Soustraction = mVal1 - mVal2
End Function

Public Property Let Value1( Byval Setting As Double)
    ' Store setting in module-level variable.
    mVal1 = Setting
End Property

Public Property Let Value2(Byval Setting As Double)
    ' Store setting in module-level variable.
    mVal2 = Setting
End Property

Public Function Hypotenuse() As Double
    'Calculate the hypotenuse of a right-angled
    'triangle (the side opposite the right side).
    Hypotenuse = Sqr((mVal1 ^ 2) + (mVal2 ^ 2))
End Function

Et après on voit partout que le vb6 est lent, tsssss
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 août 2006 à 12:41
Alors cà c'est quand même la meilleure ;)

Je te donne la solution toute faite ! Tu as lu mon post ?

J'ai mis en gras ce qu'il fallait modifier dans ton code pour que ca marche.

Mais sinon, quel est l'intérêt de passer par une classe pour faire des opérations aussi basique ???
3
bmhbmh Messages postés 22 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 13 septembre 2006
7 août 2006 à 16:51
ça chauffe par là !!!
essaye de mettre les variable dans des champs 'text'  et  mets Val avant : val(text1.text) + val (text2.text)
ça marche pour moi ( enfin si tu peux le faire)
3
andregoub Messages postés 83 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 mai 2011 1
7 août 2006 à 17:28
merci pour votre réponse les gars  j'avais pas fait gaffe n'empéche que si faut tortiller du croupion pour faire bouger certain  alors pourquoi pas, je dis bouger du croupion et  faite la dance des canards et peut être que on viendra vous aidez encore plus vite
regarder on ma repondu coup sur coup j'ai vraiment de la chance la prochaine fois je ferai la danse du ventre ou la danse du bohubohu

dédé[8D]
3

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 août 2006 à 17:33
Re,
Pense au moins a appuye sur reponse acceptee sur le ou les posts qui ont pu t'aider.
Si tu l'as fait pendant l'ecriture de ce message excuse moi

@+, Julien
Pensez:
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 août 2006 à 17:33
Bah excuse moi ....

@+, Julien
Pensez:
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 août 2006 à 10:56
Salut,

Est tu sur que dans ton exemple le résultat ne serait pas plutot 33 ?
Il faudrait donner plus de precisions
d'ou viennent les 3
a quel moment affectes tu une valeur a mval1 et mVal2

NOTE: Si au moment de l'addition les 3 on ete pris dans un textbox , c'est normal que ton resultat soit erroné car l'addition fait une concatenation si mVal1 et mVal2 sont des chaine de caracteres.
je ne sais pas si je suis clair,
@+, Julien
Pensez: Règlement/STRONG>
0
andregoub Messages postés 83 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 mai 2011 1
7 août 2006 à 11:57
Pardon
tu as raison le résultat eest bien 33 mais comment faire pour que le résultat soit bon

dédé[8D]
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 août 2006 à 12:00
Re,


Pour que le resultat soit bon, tu dois suivre le conseil de  DARKSIDIOUS 

@+, Julien
Pensez: Règlement/STRONG>
0
andregoub Messages postés 83 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 19 mai 2011 1
7 août 2006 à 12:37
je le sais qua ça fait une concatenation mais comment contourner ça je veus bien suivre le conseil de  Darksidious mais au moins mettai moi sur le chemin de la réponse si vous voulez pas me donner la solution

dédé[8D]
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 août 2006 à 13:59
Re
> andregoub: Que dire... prends la peine de lire les réponses que l'on te propose, test les cela t'éviteras de dire : "mais au moins mettai moi sur le chemin de la réponse si vous voulez pas me donner la solution"

@+, Julien
Pensez: Règlement/STRONG>
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
7 août 2006 à 17:12
Pas besoin de tortiller du croupion, DS t'as donné la solution, voici l'explication :

Tu ne types pas tes variables, donc ce sont des variants.
Les valeurs saisies au clavier et récupérées dans les propriétés .Text sont de type String
Quand tu utilises l'opérateur + entre deux variables de type String, VB réalise une concaténation.

Le type de sortie n'étant pas typé, il te retourne le résultat de l'opérateur + avec tes deux variables de type Variant:String, donc la concaténation des variables.

Soit tu force le typage des variables dans ton module de classe, soit tu types les variables quand tu les stockes dans ta classe.
0
Rejoignez-nous