IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

[C#] Changer la culture, juste pour un Convert


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut [C#] Changer la culture, juste pour un Convert
    J'ai une classe autonome que j'ai collé dans un projet. cette classe lit un fichier XML qui contient des valeurs numériques au format "anglais" (5.21, 21.23) et il me faut à un moment les convertir en double.

    Sauf que voilà, je ne sais pas pourquoi mais dans l'un des projets, il prend la culture francaise (surement de mon pc) et plante car il cherche le séparateur ",".

    Comment puis-je proprement dire que le convert.toDouble doit utiliser le séparateur ".". Je pense qu'il faut passer par une cultureInfo mais je veux que ca ne soit pas appliqué à mon projet, juste à cette classe et utilisé une seule fois.


    merci d'avance

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Dans ta classe, tu rajoutes une méthode MyConvertToDouble qui se charge de faire la convertion en double avec le CultureInfo que tu veux.

    Ensuite, dans ton projet, tu utilises cette méthode et pas Convert.ToDouble.

    Inconvénient: tu va devoir repasser sur tous les appels de méthodes, dans ton code

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    ou alors tu utilises une des surcharges de Convert.ToDouble...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double d;
    d = Convert.ToDouble("25,6", System.Globalization.CultureInfo.GetCultureInfo("fr-FR").NumberFormat);

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par Keihilin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double d;
    d = Convert.ToDouble("25,6", System.Globalization.CultureInfo.GetCultureInfo("fr-FR").NumberFormat);
    Petite précision : cet exemple fonctionne chez moi qui suis en config fr-CH, donc avec le "." comme séparateur.

    Dans ton cas, la culture à utiliser à la place de "fr-FR" est "en-EN" (ou "fr-CH" si ton seul soucis c'est le séparateur décimal).

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    merci à vous deux.
    J'ai fait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CultureInfo cul  = new CultureInfo("en-US",false);
    Convert.toDouble(item,cul);
    et ca marche.

    vos solutions sont p-e plus propres.

    par contre, bizarrement, quand je mets "en-EN" j'ai une exception "en-EN is not supported"

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    par contre, bizarrement, quand je mets "en-EN" j'ai une exception "en-EN is not supported"
    possible que ce ne soit pas le bon code...c'est le truc dont je ne me souviens jamais...à part fr-FR et fr-CH, les autres je dois systématiquement chercher . C'est peut être en-GB ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer la culture pour un nouveau process non .net
    Par AKsha dans le forum Framework .NET
    Réponses: 0
    Dernier message: 22/06/2011, 16h57
  2. Réponses: 2
    Dernier message: 10/05/2006, 09h22
  3. Débutant : juste pour démarrer
    Par cyrilc dans le forum Windows
    Réponses: 7
    Dernier message: 27/10/2005, 22h41
  4. Juste pour savoir qu'elle direction je dois prendre
    Par Antoine1183 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/08/2005, 20h03
  5. [xsl] xsl juste pour faire copie d'un xml
    Par peppena dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/02/2004, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo