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 :

tronquer un float


Sujet :

C#

  1. #1
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2012
    Messages : 103
    Points : 238
    Points
    238
    Par défaut tronquer un float
    Bonjour,

    Je ne m'étais jamais posé la question avant et maintenant que j'en ait besoin, je n'arrive pas à trouver une bonne solution sur le net (peut-être que je ne cherche pas les bons mots clés, c'est assez spécial)

    Pour faire simple : je travailles sur une application Windows Forms et j'aurais besoin de tronquer un float à la deuxième décimale.

    J'ai pour habitude d'utiliser la méthode .ToString("0.00"); mais cette dernière ne tronque pas; elle arrondit.

    Je ne cherche pas qu'on me dise en réponse "tu split le point et tu prend les 2 premiers caractères", c'est une fonction que je saurais développer; ce que j'aimerais savoir c'est s'il existe nativement une méthode dans une classe me permettant de le faire; sans avoir à recréer la fonction si jamais je retrouve le besoin de m'en servir.

    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    Nativement, non, il n'y a pas. La function Math.truncate retourne la partie entière d'un float.

    Regarde ce thread.

    Tu peux écrire une fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static float Truncate(this float value, int digits)
    {
        double mult = Math.Pow(10.0, digits);
        double result = Math.Truncate( mult * value ) / mult;
        return (float) result;
    }
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  3. #3
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2009
    Messages : 553
    Points : 1 656
    Points
    1 656
    Par défaut
    Edit: Arf, grillé !


    Hello!
    Je ne crois pas qu'il existe une méthode pour faire ça, contrairement à Math.Round() qui prévoit ce cas de figure.

    Par contre, la méthode avec Split, c'est vraiment barbare!

    Je ferais plutôt ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double d = 0.123456789;
    d = Math.Truncate( d * 100.0 ) / 100.0;

  4. #4
    Membre actif Avatar de Altor
    Homme Profil pro
    Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Inscrit en
    septembre 2012
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur C#.NeT / Administrateur S.I. en alternance / Étudiant CS2I à Nevers
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2012
    Messages : 103
    Points : 238
    Points
    238
    Par défaut
    Merci j'ai testé les deux solutions et ça à l'air de fonctionner.

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

Discussions similaires

  1. Tronquer un float (n chiffres apres la virgule)
    Par franck06 dans le forum Langage
    Réponses: 8
    Dernier message: 16/06/2009, 18h58
  2. Tronquer un float
    Par jojo67540 dans le forum Débuter
    Réponses: 5
    Dernier message: 08/07/2008, 11h41
  3. Tronquer Un Float à Trois chifres aprés la virgule
    Par wassimb dans le forum Langage
    Réponses: 20
    Dernier message: 27/11/2007, 18h33
  4. Tronquer un float
    Par guiguikawa dans le forum Delphi
    Réponses: 7
    Dernier message: 21/11/2006, 00h24
  5. tronquer un float
    Par nmerydem dans le forum C
    Réponses: 4
    Dernier message: 15/04/2004, 13h16

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