Conversion d'un string en double [Résolu]

Signaler
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007
-
cs_coq
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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

8 réponses

Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
10
Oui lorsque je fait du xml, j'ai toujours ce genre de remarque...
Pour passer outre, change le -5.xxxxxxx en -5,xxxxxxxx
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Essaye avec cette syntaxe :

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

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007

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"
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007

En effet c'etait le problème


Par contre existe-il une instruction pour remplacer les points par des virgules?
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007

Merci pour les informations pour le dernier point j'ai trouvé:

string

t1 =
"-5.257466079e+001";

string t3=t1.Replace(
'.',
',');
Messages postés
43
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
6 septembre 2007

et pour la conversion en de double en string:

double

d=
Convert.ToDouble(t3);
Messages postés
268
Date d'inscription
lundi 1 mars 2004
Statut
Membre
Dernière intervention
19 avril 2012
10
oui en fait sur les ordis dont la config est fra, il faut utiliser , et pour les configs anglaises il faut le .
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
76
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
*/