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

ASP.NET Discussion :

Converstion de string en float


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut Converstion de string en float
    rerererebonjour tous,
    j'ai un datagrid avec plusieurs collonne dont une qui est un montant. j'aimerais pouvoir parcourir toutes les lignes de cette datagrid et calculer le total des montant et l'afficher dans un textbox... voici donc mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    double totalBrut = 0;
    			foreach (DataGridItem Ligne in dgRenum.Items)
    			{
    				int cpt = 0;
    				do
    				{
    					totalBrut=totalBrut+ Convert.ToDouble(Ligne.Cells[cpt].Text);
    					cpt+=1;
    				}while (cpt<Ligne.Cells.Count);
    			}
    			txtTotalBrut.Text=Convert.ToString(totalBrut);
    mon problème (je crois que ce n'Est que ça) est du côté de la conversion. je voudrait que le text de ma cellule se transforme en un doule (ou float, je n'ai juste pas réssui a trouver avec float) pour pouvoir calculer le total...mais quand je fais ça, il me sort cette erreur là:
    System.FormatException: Le format de la chaîne d'entrée est incorrect.

    Erreur source:


    Ligne 309 : do
    Ligne 310 : {
    Ligne 311 : totalBrut=totalBrut+ Convert.ToDouble(Ligne.Cells[cpt].Text);


    Auriez vous une idée de comment je pourrait faire? merci
    shirya

  2. #2
    Membre chevronné
    Avatar de malbaladejo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2002
    Messages : 379
    Par défaut
    Tu as essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    totalBrut=totalBrut+ double.Parse(Ligne.Cells[cpt].Text);

  3. #3
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Pour ce qui est de float, tu le trouves via le mot clé float tout simplement qui est un alias de la structure System.Single.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    ma conversion a marché,merci. mais il y a encore un petit hic:
    lorsque je veux inserer dans ma datagrid le chiffre par exemple, est-ce normal que tout fonctionne lorsque j'ai un nombre avec un virgule (999,99) mais lorsque je met un point à la place ça ne marche plus (999.99). ça me donne encore la m¸eme erreur:
    Détails de l'exception: System.FormatException: Le format de la chaîne d'entrée est incorrect.

    Erreur source:


    Ligne 283 : dr[2] = txtSuff.Text;
    Ligne 284 : dr[3] = txtSequ.Text;
    Ligne 285 : dr[4] = Single.Parse(txtMontantRemun.Text);

    je ne peux pas utiliser le point? C'Est pourtant ce que je voulait faire.

    voici mon coed pour l'insertion d'une ligne:
    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
    20
    dt=new DataTable();
     
    				dt.Columns.Add(new DataColumn("a", typeof(string)));
    				dt.Columns.Add(new DataColumn("b", typeof(string)));
    				// colonnes utilisées pour l'affichage à l'usager
    				dt.Columns.Add(new DataColumn("c", typeof(string)));
    				dt.Columns.Add(new DataColumn("d", typeof(string)));
    				dt.Columns.Add(new DataColumn("Montant", typeof(Single)));
     
    			}
    			DataRow dr = dt.NewRow();
    			dr[0] = txta.Text;
    			dr[1] = txtb.Text;
    			dr[2] = txtc.Text;
    			dr[3] = txtd.Text;
    			dr[4] = Single.Parse(txtMontant.Text);
    			dt.Rows.Add(dr);
     
    			dgRenum.DataSource = dt;
    			dgRenum.DataBind();
    merci de m'aider
    shirya

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 29
    Par défaut
    Si tu peux utiliser ce que tu veux comme séparateur décimal. C'est juste que lorsque tu ne précise pas c'est la culture courante qui est prise en compte (donc, dans ton cas, probablement le français, c'est à dire la virgule comme séparateur).

    Tu peux préciser la culture à utiliser, pour le formattage et pour le parse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    using System.Globalization;
     
    CultureInfo ci = new CultureInfo("en-US");
     
    const double Pi = 3.14117;
    string text = Pi.ToString(ci);
     
    double valeur = Double.Parse(text, ci);

    Damien Thouvenin
    -------------
    CLT Services, spécialistes Dot Net + SQL 2005

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2003
    Messages : 315
    Par défaut
    merci ça marche!!!

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

Discussions similaires

  1. [C#] Comment convertir une String en float ?
    Par DestinyWar45 dans le forum C#
    Réponses: 7
    Dernier message: 08/10/2010, 04h19
  2. convertir std::string en float
    Par radicalrider dans le forum SL & STL
    Réponses: 20
    Dernier message: 03/07/2006, 18h50
  3. Convertir un String en Float
    Par alex75 dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2006, 19h58
  4. [string] [float] string to float en sql
    Par chickenhuchette dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 17/06/2005, 11h47
  5. [tableau à 2 dimensions] association String et float
    Par LoLoSS dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/07/2004, 10h53

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