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

 .NET Discussion :

[.Net 2.0] Convertion String^ en double


Sujet :

.NET

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 129
    Points
    129
    Par défaut [.Net 2.0] Convertion String^ en double
    Bonjour à tous,

    Je travaille sur un petit projet développé à l'aide du framework .Net 2.0. Lors de l'execution de ce programme, une exception est levée ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String^ strX = strBounds->Split(',')[0]->Trim(); // DEBUG : après cette instruction, strX = "49.1025998601";
    double x = Convert::ToDouble(strlat); //lève une exception : Chaîne d'entrée incorrect...
    J'avoue être un peu perdu là... Quelqu'un aurait une piste?

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Si on ne précise pas la culture lors de la conversion, la culture courante (celle du système) est utilisée. Si la culture courante est la culture fr, le séparateur décimal n'est pas le point mais la virgule d'où l'erreur

    Passe par une surcharge acceptant un paramètre IFormatProvider afin de préciser la culture à utiliser. Cela évitera de se poser la question sur la culture utilisée d'une part, et cela te permettra d'adapter la conversion d'autre part.

    Si le séparateur sera toujours le point utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double d = Convert.ToDouble("49.1025998601", CultureInfo.InvariantCulture);
    Si le séparateur peut être un point ou une virgule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    IFormatProvider format = null;
    string valeur = "49.1025998601";
     
    if (valeur.Contains("."))
    {
        format = CultureInfo.InvariantCulture;
    }
    else if (valeur.Contains(","))
    {
        // Si la culture système utilise la virgule comme séparateur décimal.
        format = CultureInfo.CurrentCulture;
        // Sinon on peut utiliser 
        // format = CultureInfo.GetCultureInfo("fr-FR");
        // Ou encore utiliser directement le NumberFormatInfo
        // format = new NumberFormatInfo();
        // ((NumberFormatInfo)format).NumberDecimalSeparator = ",";
    }
     
    double d = Convert.ToDouble(valeur, format);
    P.S. : c'est du C# pour le code, mais tu devrais t'en tirer avec je pense ^^
    Pas de questions techniques par MP

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 129
    Points
    129
    Par défaut
    Bien vu! Merci beaucoup!

    J'ai pas encore les automatismes .Net mais ça viendra

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

Discussions similaires

  1. [VB.NET] Conversion de String en Double
    Par JB-Tech dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/02/2018, 07h32
  2. Convertion String en double ou float
    Par superjaja dans le forum C#
    Réponses: 6
    Dernier message: 31/12/2007, 13h00
  3. convertion d'un string en double
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/06/2007, 15h09
  4. Problème convertion string->double
    Par PP(Team) dans le forum C++
    Réponses: 5
    Dernier message: 07/03/2007, 08h51
  5. [VB.Net] Comment convertir un string en double ?
    Par Aspic dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2006, 19h04

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