Convertir une chaine de caractères à un type float

Signaler
Messages postés
15
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
7 décembre 2006
-
Messages postés
3
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
15 septembre 2008
-
Salut, j'ai un petit problème c'est que j'ai trouvé une fonction qui peut convertir ce que j'ai saisie dans une zone de text à un type float!!!
pourtant il a des fonctions pour convertir à un entier , décimal.....mais pour convertir à un float j'ai rien trouver!! aidez moi svp! merci à l'avance.

float a =
Convert.ToDecimal(TextBox11.Text);

merciiiiiiiiii

15 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
63
Hello,

C'est normal, essaie avec Convert

.ToSingle
Un System.Single est la même chose qu'un float, comme un System.Int32 est la même chose qu'un int.

Amicalement, SharpMao
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Salut

Utilises la méthode Single.TryParse de cette facon :

Single.TryParse(TextBox11.Text, out a);

Mx
MVP C# 
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
63
Il y a eu un petit problème de formattage :

Convert.ToSingle(TextBox11.Text
)

Doit résoudre ton problème.

Amicalement, SharpMao
Messages postés
15
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
7 décembre 2006

Maleuresement j'ai tester tout ça et maleuresement ça pas marcher!!!!!
merciiiiiiiiii
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Ca correspond a quoi, "ca a pas marché".
Une exception levée ?

Parce qu'a la base, y'a aucune raison que ca ne marche pas

Mx
MVP C# 
Messages postés
15
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
7 décembre 2006

 "The name 'a' does not exist in the current context "c ça l'erreur!! est ce qu'il y a autre façon svp je suis bloqué je peux pas continuer.......

merciiiiiiiiii
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
 a c'est ta variable que tu as mis dans exemple plus haut : float a = Convert.ToDecimal

Mx
MVP C# 
Messages postés
15
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
7 décembre 2006

biensure j'ai remplaçéfloat a = Convert.ToDecimal(TextBox11.Text);

par:Single.TryParse(TextBox11.Text, out a);

mais ça rien donné!!!

merciiiiiiiiii
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Statut
Membre
Dernière intervention
19 août 2008
9
Comment as tu déclaré ta variable 'a' avant la ligne Single.TryParse(...); ?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
As-tu laissé ta variable ?
en gros tu as :

float a;
Single.TryParse(TextBox11.Text, out a);

Mx
MVP C# 
Messages postés
15
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
7 décembre 2006

j'ai fait exactement comme ça:


float a;
Single.TryParse(TextBox11.Text, out a);

mais ça marche pas! ça m'as rendu fou!!! un simple truc mais qui vraiment bloque tout mon projet!!!

merciiiiiiiiii
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Et que te renvoie la méthode Single.TryParse ? Elle doit te retourner true si la conversion a reussi, et false autrement.
Si ca ne marche pas, c'est qu'elle doit te renvoyer false, et donc que la valeur dans le textbox n'est pas un float valide

Mx
MVP C# 
Messages postés
43
Date d'inscription
dimanche 2 novembre 2003
Statut
Membre
Dernière intervention
6 septembre 2011

Salut ad_sayouri, pour convertir une string en float, il existe une methode de la classe float (qui est en fait le Single dont on parle depuis le début):

float valeur = float.Parse(ma_chaine);

ma_chaine DOIT etre une string et est donc déclarée comme ceci:
string ma_chaine = "-3.1416";

Attention, tu récupères le texte d'une textbox donc il faut qu'il soit au bon format alors pour éviter les erreurs on préférera utiliser
bool Resultat = float.TryParse(string ma_chaine, out float valeur);

Si ton format de texte n'est pas valide, commence par faire des trims pour enlever les espaces etc. , mais l'erreur la plus courante est que le système attend un nombre avec un "." comme symbole de virgule ou inversément il attend une "," ... vérifie donc de ce coté.

A+
Messages postés
3
Date d'inscription
mercredi 14 novembre 2007
Statut
Membre
Dernière intervention
19 décembre 2008

Bonjour, j'ai un moi aussi un petit problème lors de la conversion d'un string en float :

Je récupère des strings pour lesquels il y a un séparateur des milliers qui est un espace.  Malheureusement, je n'arrive pas à enlever cet espace...

Quelqu'un peut-il m'aider ???
Messages postés
3
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
15 septembre 2008

Si tu veux un float a partir d'un string, t'as qu'a faire
float a = float.parse(TextBox11.Text);

ca devrait marcher je pense.