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

  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!!!

  7. #7
    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
    re re rebonjour,
    bon ben finalment ya un autre problème
    c'est que lorsque je veux afficher mon résultat qui est un single dans mon textbox, de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtTotal.Text = Convert.ToString(total);
    dans mon texbox il affiche bien le total, MAIS avec une virgule et non un point.
    Comment ça se fait? j'ai même essayer de faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtTotal.Text.Replace(",",".")
    mais il n'y a rien à faire, mon textboxe tien à cette virgule
    Auriez-vous une petite idée de comment faire pour qu'il affiche mon point à la place de cette virgule?
    merci
    shirya

  8. #8
    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
    bon....en fait c le même problème ...voici ce que ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	CultureInfo ci = new CultureInfo("en-US");
    	txtTotalBrut.Text = Convert.ToString(total,ci);

  9. #9
    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
    Et oui ! ;-)

    Sinon, justre une remarque en passant, pour clore le sujet :

    Citation Envoyé par shirya
    j'ai même essayer de faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtTotal.Text.Replace(",",".")
    mais il n'y a rien à faire, mon textboxe tien à cette virgule
    ton code ne pouvait pas fonctionner, il aurait fallut affecter le résultat !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtTotal.Text = txtTotal.Text.Replace(",",".")

  10. #10
    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
    ah c'est bon à savoir
    merci
    shirya

+ 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