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

yabiyou 43 Messages postés jeudi 19 juillet 2007Date d'inscription 6 septembre 2007 Dernière intervention - 22 août 2007 à 11:25 - Dernière réponse : cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention
- 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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
MasterShadows 269 Messages postés lundi 1 mars 2004Date d'inscription 19 avril 2012 Dernière intervention - 22 août 2007 à 13:01
3
Merci
Oui lorsque je fait du xml, j'ai toujours ce genre de remarque...
Pour passer outre, change le -5.xxxxxxx en -5,xxxxxxxx

Merci MasterShadows 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de MasterShadows
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 22 août 2007 à 11:32
0
Merci
Essaye avec cette syntaxe :

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

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
yabiyou 43 Messages postés jeudi 19 juillet 2007Date d'inscription 6 septembre 2007 Dernière intervention - 22 août 2007 à 11:44
0
Merci
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"
Commenter la réponse de yabiyou
yabiyou 43 Messages postés jeudi 19 juillet 2007Date d'inscription 6 septembre 2007 Dernière intervention - 22 août 2007 à 14:07
0
Merci
En effet c'etait le problème


Par contre existe-il une instruction pour remplacer les points par des virgules?
Commenter la réponse de yabiyou
yabiyou 43 Messages postés jeudi 19 juillet 2007Date d'inscription 6 septembre 2007 Dernière intervention - 22 août 2007 à 14:22
0
Merci
Merci pour les informations pour le dernier point j'ai trouvé:

string

t1 =
"-5.257466079e+001";

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

double

d=
Convert.ToDouble(t3);
Commenter la réponse de yabiyou
MasterShadows 269 Messages postés lundi 1 mars 2004Date d'inscription 19 avril 2012 Dernière intervention - 22 août 2007 à 22:26
0
Merci
oui en fait sur les ordis dont la config est fra, il faut utiliser , et pour les configs anglaises il faut le .
Commenter la réponse de MasterShadows
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 25 août 2007 à 12:18
0
Merci
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
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.