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

Windows Forms Discussion :

"Le format de la chaine d'entrée est incorrect" :xx


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut "Le format de la chaine d'entrée est incorrect" :xx
    Bonjour à tous !

    Je reviens vers vous pour vous demandez encore une fois de l'aide.

    J'ai un datagridview avec deux colonnes à l'intérieur contenant des variable de types doubles.

    J'extrais ces données pour les calculés dans une boucles. A l'exécution, voici l'erreur suivante :
    "Le format de la chaine d'entrée est incorrect"


    Et voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
     
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
     
                   somme += double.Parse(dataGridView1.Rows[i].Cells[name_col1].ToString()) * 
                        double.Parse(dataGridView1.Rows[i].Cells[name_col2].ToString());
    }
     
    ...

    je vous donne que ce code la, car après plusieurs tests, je sais que ce qui ne marche pas est : somme+=...

    Des idées ?
    Cordialement.

  2. #2
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Salut.

    Peux-tu nous montrer comment tu as déclarer ta variable somme ?

  3. #3
    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
    Ce qui ne fonctionne pas c'est
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    double.Parse(maValeur)
    car la chaîne de caractère en paramètre de la méthode ne peut pas être convertie en double.

    Deux choses. Utilise TryParse plutôt que Parse. Ensuite utilise un IFormatProvider pour gérer les cas avec . ou , comme séparateur décimal. C'est probablement ce dernier point qui génère l'exception actuellement.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    string maChaine = dataGridView1.Rows[i].Cells[name_col1].ToString();
    double operande1, operande2;
    // On essaye de convertir avec la culture courante (séparateur décimal = ,). 
    // Sinon, on utilise la culture invariante (séparateur décimal = .).
    if (!double.TryParse(maChaine, out operande1) &&
        !double.TryParse(maChaine, NumberStyles.Number, CultureInfo.InvariantCulture, out operande1))
    {
        // Erreur de conversion
    }
     
    // idem pour operande2
    ...
     
    // calcul final
    somme += operande1 * operande2;
    Pas de questions techniques par MP

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par DarkSeiryu Voir le message
    Salut.

    Peux-tu nous montrer comment tu as déclarer ta variable somme ?

    Bonjour, j'ai déclaré somme de cette maniere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    int somme = 0;
    @StormimOn, jvais voir ca, je vous tiens au courant.

  5. #5
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    J'pensais juste que tu t'étais peut-être gouré dans la déclaration de la variable mais ce n'est pas du tout ça lol

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    j'avais deviné, mais merci quand meme


    Pour ton code StormimOn, operande 1 et 2 rentre toujours dans le if et j'ai somme continuellement égale à 0.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 29
    Points : 26
    Points
    26
    Par défaut reee
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    private void button1_Click(object sender, EventArgs e)
            {
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    double valeur = Convert.ToDouble(dataGridView1.Rows[i].Cells[0].Value);
                    double valeur2 = Convert.ToDouble(dataGridView1.Rows[i].Cells[1].Value);
     
                    somme += (int)valeur * (int)valeur2;
                }
    en utilisant les "," et non des "." dans la grid pour les doubles

    RECTIFICATION POUR LA FIN

    somme += (decimal)valeur * (decimal)valeur2; ET Somme etant de type decimal.
    En espérant avoir aidé.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    non toujours pas Toujours la même erreur ..

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    quel c*n je fais .. je viens de remarquer dans la base de donnée que ce n'est pas un double mais un float.... Ta solution fonctionne mehdi a part pour la conversion en float

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    personne n'a une idée ?

    Perso j'ai tenté de mettre le float -> string et de string -> double

    :/

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    UP!

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 323
    Points : 128
    Points
    128
    Par défaut
    bop, tant pis, merci quand meme

Discussions similaires

  1. Le format de la chaîne d'entrée est incorrect.
    Par Josselin54 dans le forum C#
    Réponses: 10
    Dernier message: 26/01/2011, 08h13
  2. Le format de la chaîne d'entrée est incorrect.
    Par badi3a82 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 21/10/2010, 12h07
  3. Le format de la chaine d'entrée est incorrect
    Par momoh dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/02/2009, 01h18
  4. Réponses: 2
    Dernier message: 12/02/2009, 09h59
  5. [C#] [1.1] Le format de la chaîne d'entrée est incorrect
    Par Sup@Lou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/08/2006, 10h01

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