Re: problème posé par Navy

Résolu
cyth56
Messages postés
7
Date d'inscription
lundi 20 décembre 2010
Statut
Membre
Dernière intervention
13 janvier 2012
- 13 janv. 2012 à 23:18
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
- 14 janv. 2012 à 01:50
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

ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
13 janv. 2012 à 23:35
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
3
cs_Jack
Messages postés
14007
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
78
14 janv. 2012 à 01:50
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)
3