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

Messages postés
41
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
30 juin 2011
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
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!

 
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
24
3
Merci
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 ! -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
41
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
30 juin 2011
3
Merci
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!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de GranPicS
Messages postés
61
Date d'inscription
dimanche 5 novembre 2000
Statut
Membre
Dernière intervention
24 février 2010
0
Merci
bah quand tu fais textebox.text c'est un string, pas un "décimal". Elle vient de là l'erreur.
Commenter la réponse de rours
Messages postés
41
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
30 juin 2011
0
Merci
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.
Commenter la réponse de GranPicS
Messages postés
61
Date d'inscription
dimanche 5 novembre 2000
Statut
Membre
Dernière intervention
24 février 2010
Commenter la réponse de rours
Messages postés
41
Date d'inscription
mardi 19 mai 2009
Statut
Membre
Dernière intervention
30 juin 2011
0
Merci
P.S merci aussi Krimog, j'étais en train d'écrire ma réponse quand tu as envoyé ton post
Commenter la réponse de GranPicS
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
24
0
Merci
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 ! -
Commenter la réponse de krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
24
0
Merci
Ah, suis trop lent, tu l'avais déjà fait ;)

Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Commenter la réponse de krimog