andregoub
Messages postés83Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention19 mai 2011
-
7 août 2006 à 10:51
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDerniè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
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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
bmhbmh
Messages postés22Date d'inscriptionjeudi 3 février 2005StatutMembreDernière intervention13 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)
andregoub
Messages postés83Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention19 mai 20111 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]
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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>
andregoub
Messages postés83Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention19 mai 20111 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
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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"
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 20102 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.