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
6351
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
11
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
11
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
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
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