Re: problème posé par Navy [Résolu]

Signaler
Messages postés
7
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
13 janvier 2012
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
bonjours, en reprenant le problème de Navy un peu plus bas.
label3.caption = val(label1.caption) + val(label2.caption)

voici ma solution.
label3 = (label1 * 1) + (label2 * 1)
cela fonctionne avec la virgule bien sur pas avec le point pour les décimaux.
Ma question, y aurait t'il avec des opérations bien plus longues des erreurs avec cette démarche.
Merci d'avance.

2 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour, cyth56,

Simplement : tu joues là avec une tolérance (fausse amie) de VB6.
Je ne te le recommande pas !
Utilise plutôt cdbl (si séparateur virgule), val (si séparateur point).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut

Tolérance parce que :
- label3 : signifie en réalité label3.Caption
Pas grave en soit, mais méfie toi des raccourcis
- Le Caption d'un Label accepte du texte. Ce n'est pas un champ numérique. Donc multiplier un texte avec le chiffre 1 oblige VB à supposer que le contenu du label est un chiffre (conversion implicite), mais le jour où se sera un texte (ou une donnée incompatible), erreur garantie.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)