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 14006 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 211
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 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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
Rejoignez-nous