Problème de culture, virgule , etc.....

cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 7 juin 2005 à 14:52
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 7 juin 2005 à 15:37
Bonjour,



Alors là ca se complique, j'ai 15,150 et je remplace la "," par la
virgule de la culture en cours. donc c.Todecimal(resultat2) marche mais
si je change de culture c.ToDecimal(resultat2) me dit format d'entrée
inccorect pourtant j'ai bien changer avec le virgule de la culture en
cours. Alors là encore un mystère.....



CultureInfo regional = new CultureInfo(CultureInfo.CurrentCulture.ToString(),true);


String p = regional.NumberFormat.get_NumberDecimalSeparator() ;

char virgule = c.ToChar(p) ;



String resultat = "15,150" ;

String resultat1 = resultat.Replace('.',virgule) ;

String resultat2 = resultat1.Replace(',',virgule) ;



Convert c ;

c.ToDecimal(resultat2) ;



Quel est le meilleur moyen de gérer la culture parceque en faite
j'essaye de masquer un textbox pour pouvoir y rentrer que des Decimal
dedans : http://www.csharpfrcom/forum.v2.aspx?ID=477883

2 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
7 juin 2005 à 15:27
La conversion de ton code, en C#, marche tres bien



string resultat = "15,150" ;

string resultat1 = resultat.Replace('.',
char.Parse(Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator))
;

string resultat2 = resultat1.Replace(',',

char.Parse(Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator))
;



Decimal d = Convert.ToDecimal(resultat2) ;

MessageBox.Show(d.ToString());




J'ai essayé de modifier la ',' de resultat par un '.', ca marche toujours


Mx
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
7 juin 2005 à 15:37
J'ai essayé, ca marche quand je fais ca en faite.



c.ToDecimal(resultat2, new CultureInfo(CultureInfo.CurrentCulture.ToString(),true)) ;



au moment de la convertion je specifie la culture utilisé.



Si mettons ma culture est "," et que je veux convertir 15.15 en
decimal je remplace 15.15 par 15,15 et ensuite je convertis en
specifiant la culture. Et en faite si mettons ma culture est "f" et que
je fais textBox1.Text = c.Tostring(c.ToDecimal(resultat2, new
CultureInfo(CultureInfo.CurrentCulture.ToString(),true))) ; il
m'affichera pas 15f15 mais 15,15. Il marquera toujours 15,15 quelque
soit la culture utilisé d'après ce que j'ai constaté c pas mal en faite.

merci pour ta réponse je vais essayé ton code.
0
Rejoignez-nous