Conversion d'un string en double

Résolu
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007 - 22 août 2007 à 11:25
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 25 août 2007 à 12:18
Bonjour,

Une question de débutant...
J'ai un tableau de string (que j'ai récupérer en découpant un fichier grâce à votre aide). Je voudrais savoir quelle instruction utiliser pour convertir ces string en double. Mais données sont de la forme
-1.800030000e+002
-1.795860000e+002
-1.790640000e+002
J'ai essayer avec parse mais ça à pas l'air de marcher
val =

new
String[taille];

double

d = Double.Parse(val[75].Split('=')[3]);
val[75].Split('=')[3] vaut dans le tableau    -5.257466079e+001
A voir également:

8 réponses

MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
22 août 2007 à 13:01
Oui lorsque je fait du xml, j'ai toujours ce genre de remarque...
Pour passer outre, change le -5.xxxxxxx en -5,xxxxxxxx
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 août 2007 à 11:32
Essaye avec cette syntaxe :

Double.Parse( "1.790640000e+002", NumberStyles.AllowExponent);

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007
22 août 2007 à 11:44
Ca ne fonctionne pas...

string t =
"-5.257466079e+001";



double
.Parse(t,

NumberStyles
.AllowExponent);



message d'erreur:
"Assurez vous que le format de vos argument de votre méthode est correct"
0
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007
22 août 2007 à 14:07
En effet c'etait le problème


Par contre existe-il une instruction pour remplacer les points par des virgules?
0

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

Posez votre question
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007
22 août 2007 à 14:22
Merci pour les informations pour le dernier point j'ai trouvé:

string

t1 =
"-5.257466079e+001";

string t3=t1.Replace(
'.',
',');
0
yabiyou Messages postés 43 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 6 septembre 2007
22 août 2007 à 14:42
et pour la conversion en de double en string:

double

d=
Convert.ToDouble(t3);
0
MasterShadows Messages postés 268 Date d'inscription lundi 1 mars 2004 Statut Membre Dernière intervention 19 avril 2012 12
22 août 2007 à 22:26
oui en fait sur les ordis dont la config est fra, il faut utiliser , et pour les configs anglaises il faut le .
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
25 août 2007 à 12:18
Salut,

Sinon simplement utiliser au "décodage" la culture de la source c'est pas plus mal.
Et si la source pouvait enregistrer en culture invariante ça ne serait pas plus mal.

Dans le cas du Xml, voir la classe XmlConvert.

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