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 :

Problème d'affichage de float en 2 décimales après la virgule


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Problème d'affichage de float en 2 décimales après la virgule
    Bonjour

    Je n'arrive pas à afficher un float, par 6/7 sous la forme x.yz.

    J'ai essayé ça sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        float _support_condition;
        float _support_condition_conséquence;
        Console.Write("_support_condition", _support_condition.ToString("#.##"));
        Console.Write("_support_cond_cons", _support_condition_conséquence.ToString("0.00"));
    Merci pour votre aide.

  2. #2
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Bonjour,

    Attention, si tu utilises cette forme de Console.Write, ton utilisation est incomplète, tu n'utilises pas l'argument :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                Console.Write("_support_condition {0}", _support_condition.ToString("#.##"));
                Console.Write("_support_cond_cons {0}", _support_condition_conséquence.ToString("0.00"));
     
                Console.Write("_support_condition {0}", _support_condition.ToString("F2")); // Autre utilisation possible

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Problème d'affichage de float en 2 décimales après la virgule
    Cela ne fonctionne toujours pas

    Quand j'utilise ce que tu préconises

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        float _support_condition;
        _support_condition = 6 / 7;
            Console.WriteLine("_support_condition {0}", _support_condition.ToString("#.##"));
            Console.WriteLine("_support_cond_cons {0}", _support_condition.ToString("0.00"));
            Console.WriteLine("_support_condition {0}", _support_condition.ToString("F2"));
    Cela m'affiche :

    rien
    0,00
    0,00

    ....

  4. #4
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Bonjour,

    Si ça fonctionne, le problème vient du :

    Tu divises un entier par un autre, petit rappel : en programmation diviser des entiers revient à faire une banale division euclidienne.

    Il faut préciser que tu utilises des nombres à virgules :

    Si tu as un doute sur le résultat d'une opération, laisse le curseur sur l'opérateur, il te précisera si ça sera un float ou un int.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Problème d'affichage de float en 2 décimales après la virgule
    Ok merci

    Comment alors déclarer 3 variables (sans constantes a et b) pour voir un résultat avec virgule ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        float a;
        float b;
        float c = a/b;
     
            Console.WriteLine("c {0}", c.ToString("#.##"));
            Console.WriteLine("c {0}", c.ToString("0.00"));
            Console.WriteLine("c {0}", c.ToString("F2"));
    ne fonctionne pas ....

  6. #6
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 640
    Points : 2 149
    Points
    2 149
    Par défaut
    Et bien, il te suffit de préciser qu'il s'agit d'un float comme je l'ai fait, en ajoutant un F. Voici un petit recapitulatif sur comment préciser la nature des nombres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int entier = 1234;
    float flt = 1234F; // ou 1234f
    double dbl = 1234D; // ou 1234d
    decimal dcm = 1234M; // ou 1234m
    int hexa = 0xFF; // ou  0xff
    int binaire = 0B0011; // ou 0b0011
    Le fait qu'en passant par a et b ça marche est parce que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float resultat =  6 / 7;
    A l'instant de l'opération, ce sont des entiers, donc cela donne 0. Ensuite le cast de int vers float se fait implicitement car aucune perte, donc ça te donne bien 0F au final. Tu finis bien avec un float au final.

    C'est une habitude à prendre lorsque tu fais des opérations, faire attention a tous les cast implicites / explicites et à la nature des nombres.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Problème d'affichage de float en 2 décimales après la virgule
    Oui, mais je n'ai pas été clair : je n'ai pas de constantes mais je passe par des variables ...

    Par exemple si j'ai une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    float res;
     
    for (float i = 0; i < 2; i++)
    {
    tab[i] = i;
     
    }
    res = tab[0]/tab[1];
    Cela ne fonctionne pas !! je ne vois pas les décimales ...

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2014
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Cela fonctionne j'ai surcasté en float

    Merci !!!

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

Discussions similaires

  1. Problème de conversion en double : Trop de chiffres après la virgule
    Par Scots dans le forum Développement Web avec .NET
    Réponses: 11
    Dernier message: 28/09/2014, 18h14
  2. [PHP 5.2] Comment personalisé le nombre de décimal apres la virgule
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2009, 19h10
  3. Réponses: 4
    Dernier message: 06/12/2007, 20h23
  4. [Nombre]formater le nombre de décimal après une virgule.
    Par PascalCmoa dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/03/2007, 10h40
  5. Décimales après la virgule
    Par Frédérico Vincento dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 05/10/2006, 16h00

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