VB.Net String en Double [Résolu]

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
65
Date d'inscription
mercredi 19 juillet 2006
Statut
Membre
Dernière intervention
5 juin 2012
-
Salut...

J'ai un problème de conversion de variable.

J'ai un textbox qui est en string et je veux faire des calcul mathématique avex le nombre qui est dans ce textbox.
X1 as Double

Ca me dit qu'il n'est pas capable de mettre la valeur de mon textbox dans ma variable X1 (Double)
Comment je peux contourner ce problème ???

Merci d'avance 

X1 = lblCoordX.Text
X1 =

CDbl(X1)
Ou
X1 = CDbl(
lblCoordX.Text)

7 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Concernant ta première question, que te donne X1 = CDbl(
lblCoordX.Text) comme message d'erreur. Celle là devrait marcher si tu respecte les parmètres régoinaux pour la virgule.

Concernat ta réponse , en fait tu nous expose un second problème.

lblCoordX = "0.0000"
ne marche plus en .Net. Maintenant il faut systématiquement preciser la propriété : lblCoordX.Text = format(Etape3_X,
)

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Et en essayant les différentes propositions et notament la dernière, ça te dit quoi ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Dim
x

As



String
= 12.4


Dim
d

As



Double
=

CDbl
(x)



Voir aussi Double.TryParse()

<hr />
-Blog-
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
et bien si je fais un truc comme ca...

Etape3_X = CoordXStation + Etape2_Dx 'Etape3_X  as Double
lblCoordX = Format(Etape3_X,

"0.0000")Ça dit comme erreur:

Value of type 'String' cannot be converted to 'System.Windows.Forms.Label'

J'ai essayé des affaire de ce style
lblCoordX = CDbl(Replace(Format(Etape3_X, "0.0000",".",","))
)
lblCoordX = CDbl(Replace(Format(Etape3_X, "0.0000",",","."))
)

Ça fonctionne toujours pas, j'ai la même erreur...
Je suis en Compact Framework. Ça vient peut-être de là le prob.
Je suis capale de convertir un Double en String avec la Fonction Replace mais je ne suis pas capabale de faire l'inverse ????

Si vous avez une idéé

Merci

P.S. la Fonction Double.TryParse() ne fonctionne pas avec le CompactFramework 
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Et je pense effectivement que le souci vient d'un pb virgule/point pour les décimales.

Au pasage, j'ai lu qu'il valait mieux utiliser Double.Parse() plutôt que CDbl() ?
Un avis sur le sujet ?
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
On m'a suggére de prendre le Convert.ToDouble en .Net pour la converssion..
Messages postés
65
Date d'inscription
mercredi 19 juillet 2006
Statut
Membre
Dernière intervention
5 juin 2012

Avant de transformer un Str en Dbl avec Cdbl, insère, pour mesure de sécurité la fonction  If Isnumeric(lblCoordX.text) =true Then, si jamais ça plante, tu sauras que ta string ne peut^-être convertie en Dbl avant d'avoir une erreur fatale.