Caste

Résolu
maxelpiratos Messages postés 43 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 30 janvier 2006 - 5 déc. 2005 à 17:22
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 7 déc. 2005 à 20:56
bonjour,

Je voudrais caster un string en float. j'ai essayé avec :

float mon_float =
float.Parse(str, System.Globalization.NumberStyles.Float);

double mon_double = System.Convert.ToDouble(str);

mais cela ne marche que si je rentre un nombre du type "2,4" or mysql n'accepte que la forma "2.4" pour les float!!!

comment puis je faire??

merci d'avance!

5 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
5 déc. 2005 à 21:48
C'est un probleme de culture.


<HR>
CultureInfo ci =
new
CultureInfo(
"fr-FR",
true);
ci.NumberFormat.NumberDecimalSeparator =
".";
System.Threading.
Thread.CurrentThread.CurrentCulture = ci;

double b =
double.Parse(
"10.0"); // La ca marche

<HR>

A noter que si un de tes utilisateurs rentre une valeur avec une virgule, il faudra que tu geres le probleme, a savoir remplacer la virgule par un point avec un tonString = tonString.Replace(',', '.');

Mx
3
maxelpiratos Messages postés 43 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 30 janvier 2006
6 déc. 2005 à 08:56
Merci pour ton aide j'essai si ca marche mais quelle classe faut-il appeler pour que "CultureInfo" soit reconnu ?

Merci d'avance!
0
maxelpiratos Messages postés 43 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 30 janvier 2006
6 déc. 2005 à 09:01
c bon j'ai trouvé sur le forum!!!!!

merci!!
0
apacheswiss Messages postés 154 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 22 août 2007
7 déc. 2005 à 20:10
tu peux également remplacer toutes les virgules par des point avant de le caster.
0

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

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
7 déc. 2005 à 20:56
Mauvaise pratique le remplacement dans la chaine : qu'est ce qui te garantis que l'utilisateur ne vas pas choisir le ';' (par exemple) comme séparateur décimal pour son système ?
Et dans ce cas si il saisit "2;7", il s'agit d'une valeur correcte :-)
Donc il est en général préférable de travailler avec la culture de l'utilisateur.

/*
coq
MVP Visual C#
*/
0
Rejoignez-nous