begin process at 2012 02 14 18:57:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

erreur dans l'addition


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

erreur dans l'addition

lundi 7 août 2006 à 10:51:04 | erreur dans l'addition

andregoub

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]

lundi 7 août 2006 à 10:56:56 | Re : erreur dans l'addition

jrivet

Membre Club
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>
lundi 7 août 2006 à 11:32:40 | Re : erreur dans l'addition

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
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 Double

Public 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
lundi 7 août 2006 à 11:57:12 | Re : erreur dans l'addition

andregoub

Pardon
tu as raison le résultat eest bien 33 mais comment faire pour que le résultat soit bon

dédé[8D]
lundi 7 août 2006 à 12:00:23 | Re : erreur dans l'addition

jrivet

Membre Club

Re,

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

@+, Julien
Pensez: Règlement/STRONG>

lundi 7 août 2006 à 12:37:28 | Re : erreur dans l'addition

andregoub

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]
lundi 7 août 2006 à 12:41:39 | Re : erreur dans l'addition

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
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 ???


lundi 7 août 2006 à 13:59:22 | Re : erreur dans l'addition

jrivet

Membre Club
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>
lundi 7 août 2006 à 16:51:56 | Re : erreur dans l'addition

bmhbmh

Réponse acceptée !
ç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)
lundi 7 août 2006 à 17:12:42 | Re : erreur dans l'addition

PhilippeE

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.

1 2

Cette discussion est classée dans : public, function, property, addition, mval1


Répondre à ce message

Sujets en rapport avec ce message

Polymorphisme en VB6 [ par moot1983 ] Bonjour,J'essaie actuellement de réaliser une interface en VB6 mais j'ai un message d'erreur à la compilation. Je n'ai jamais fait ça en VB alors je m Module Class [ par lispo ] Bonjour a tous,J'essaye de crée une classe mais je rencontre quelques problèmmequelqu'un pourrait il m'aidermerci d'avanceVoila comment je procede'''D Problème dans un module de classe en VBA [ par TomC ] Bonjour tout le monde.Je débute avec les modules de classes en vba et je suis confronté à un problème.Mon code est composé de 2 modules de classes et function et default [ par Sator ] Mais comment fait-on????Public Const Nulli As String = "00000000000000000000000000000000000000000000000000000000000" Public Function ImpEuroSuisse(C form et function.... [ par Sator ] Bonjour, voici mon problème... j'ai des forms dans un projet, et plusieurs combo doivent recevoir les mêmes infos, donc je  créer une routine si en de Appel DLL dans un module ne marche pas [ par andrebernard ] Bonjour à tousVoila, suite a plusieurs POSTS dans ce Forum, j'ai essayé de faire appel a ma DLL non-activeX qui a été crée par un autre language que V un For Each que ne fonctionne pas avec une collection maison ! [ par EMMANUELTAVE ] bonsoir, Je transforme une application VB6 en VB2005 : Ouf je m'acroche !voici ma classe de base : rien de tres .....< Créer l'équivalent d'une dll Activex, utilisable dans une page Asp avec Visual Basic 2005 [ par lelostecloic ] Hello tout le monde !Voilà mon problème :J'ai besoin de créer une dll qui puisse être appelée dans un page Asp (en faisant un Server.createObject) à l FtpPutFile ne marche pas sous vb.net [ par darziw ] Bonjour, j'ai un gros probleme je suis tous les tutos que j'ai pu trouver pour utiliser wininet.dll, j'arrive a me connecter , a verifier si tel dossi withEvents [ par lispo ] Bonjour a tous,J 'ai crée une classe cercle(Vba AutoCad)mais je voudrais lui attribuer un evenement(ex: apparition d'un msgbox)voila comment j'ai fait


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales