Récupérer un décimale à partir d'une textbox

Résolu
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011 - 25 mai 2009 à 15:50
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 25 mai 2009 à 17:16
Bonjour,

Je cherche à récupérer une valeur décimale saisie dans une textBox.

Mon code actuel (et défectueux donc) est de ce style:

Decimal

Stock = 0;
Stock = TextBox.Text

Et là evidemment j'ai le droit à un message d'erreur.

Je suis sûr que la réponse est très simple mais je n'arrive pas à la trouver...

Merci d'avance!

 

8 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
25 mai 2009 à 17:07
Salut

Il n'y a pas d'autre propriétés que .Text pour récupérer la valeur saisie. Tout simplement car elle peut contenir n'importe quel texte, pas forcément un décimal. (Surtout que selon les paramètres de ton appli / ordi, un décimal s'écrit avec un "." ou une ",").
Ton but n'est donc pas de trouver une propriété qui renvoie un décimal mais de transformer ton string en décimal.

Pour les conversions (en l'occurrence d'un string en un décimal), il existe la classe statique Convert
> Decimal Stock Convert.ToDecimal(TextBox.Text);

L'autre méthode, c'est la méthode statique Parse de la classe Decimal
> Decimal Stock Decimal.Parse(TextBox.Text);

En cas de problème de conversion (par exemple, si tu lui demande de convertir "gn*^*ù$" en décimal), il lèvera une exception.

Enfin, tu peux faire
=>
Decimal Stock;
bool ConversionReussie = Decimal.TryParse(TextBox.Text, out Stock);

Là, la fonction renvoie true si la conversion a réussi, false sinon. Si elle a réussi, ta valeur se trouve dans la variable Stock.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
3
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
25 mai 2009 à 17:07
Merci rours je viens juste de trouver et j'allais poster ma réponse avant de voir que tu m'avais répondu.

Il me suffisait donc de mettre :

Stock = Decimale.Parse(textbox.Text);

Merci quand même!
3
rours Messages postés 61 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 24 février 2010
25 mai 2009 à 15:58
bah quand tu fais textebox.text c'est un string, pas un "décimal". Elle vient de là l'erreur.
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
25 mai 2009 à 16:09
Oui en faite j'ai peut être mal posé ma question, je sais d'où vient l'erreur,
le truc c'est que je ne sais pas quoi mettre à la place de ".Text" pour que ma textbox me renvoi une valeur Decimale que je puisse récupérer dans ma variable Stock qui elle est de type décimale.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rours Messages postés 61 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 24 février 2010
25 mai 2009 à 17:00
0
GranPicS Messages postés 41 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 30 juin 2011
25 mai 2009 à 17:10
P.S merci aussi Krimog, j'étais en train d'écrire ma réponse quand tu as envoyé ton post
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
25 mai 2009 à 17:15
N'oublie pas de mettre "réponse accepté" pour aider dans les recherches et autres.

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
25 mai 2009 à 17:16
Ah, suis trop lent, tu l'avais déjà fait ;)

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
0
Rejoignez-nous