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

C# Discussion :

[C#] Comment diviser 2 float et arrondir le résultat à 2 décimales ?


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut [C#] Comment diviser 2 float et arrondir le résultat à 2 décimales ?
    Bonjour à tous !!

    J'ai le problème suivant que je n'arrive pas à résoudre.
    Je récupère 2 strings que je parse en float (là pas de problème)
    Mais je n'arrive pas à diviser ces deux floats et écrire le résultat sous forme d'un nombre à 2 décimales.
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    float a = float.Parse(VIEW1_DETAILVIEW_NB_SITES_WHICH_FILLED.Rows[0].Cells[0].Text);
    float b = float.Parse(VIEW1_DETAILVIEW_NB_SITES.Rows[0].Cells[0].Text);
    float c = (float)a / (float)b;
    Page.RegisterClientScriptBlock("5", "<script language='javascript'>alert("+ c.ToString("0.00") + ")</script>");
    Qu'est ce qui ne va pas ?

    Merci pour votre aide !!!
    Bonne journée.
    tout le monde est d'accord pour critiquer la pensée unique

  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
    Vue d'ensemble des formats
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    float a = float.Parse("12,5");
    float b = float.Parse("2,6");
    float c = a / b;
    string res = c.ToString("#,##0.00");
    Tu as aussi la méthode Math.Round qui te permet de gérer les arrondis.
    Pas de questions techniques par MP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Merci pour ta réponse StormimOn.

    J'ai essayé le code d'exemple que tu m'as donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    float a = float.Parse("12,5");
    float b = float.Parse("2,6");
    float c = a / b;
    string res = c.ToString("#,##0.00");
    Page.RegisterClientScriptBlock("5", "<script language='javascript'>alert("+ res + ")</script>");
    Mais j'obtiens comme résultat 4

    Je ne comprends pas pourquoi je n'ai pas de décimales ?
    tout le monde est d'accord pour critiquer la pensée unique

  4. #4
    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
    Tu as 4 à quel niveau (dans la variable res ou à l'affichage) ?
    Si tu utilises une des surcharges de la méthode Math.Round, tu as le même résultat ?

    Je viens de vérifier pour être sûr et j'ai bien les décimales chez moi.
    Pas de questions techniques par MP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    C'est un problème JavaScript. Pour résoudre mon problème il suffit de rajouter des ' dans le alert. Comme ceci, ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    double a = double.Parse(VIEW1_DETAILVIEW_NB_SITES_WHICH_FILLED.Rows[0].Cells[0].Text);
    double b = double.Parse(VIEW1_DETAILVIEW_NB_SITES.Rows[0].Cells[0].Text);
    double c = a / b;
    double res = Math.Round(c, 2,MidpointRounding.ToEven);
    Page.RegisterClientScriptBlock("5", "<script language='javascript'>alert('"+ res + "')</script>");
    Merci beaucoup pour ton aide StormimOn

    Bonne journée !!
    tout le monde est d'accord pour critiquer la pensée unique

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

Discussions similaires

  1. Comment diviser une zone de texte d'un champ
    Par erikac dans le forum IHM
    Réponses: 5
    Dernier message: 03/02/2007, 21h07
  2. Division et float
    Par Franck26 dans le forum C
    Réponses: 4
    Dernier message: 10/01/2007, 00h18
  3. Réponses: 5
    Dernier message: 07/11/2006, 11h16
  4. comment diviser mon application access en 2 partie
    Par Soulghard dans le forum Access
    Réponses: 4
    Dernier message: 10/01/2006, 10h26
  5. comment comparer 2 floats ?
    Par piff62 dans le forum C
    Réponses: 2
    Dernier message: 25/10/2005, 13h34

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