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 à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Points : 14
    Points
    14
    Par défaut Tronquer un float
    Bonjour,

    Je débute en C et je suis face à un problème qui parait assez simple mais que je n'arrive pas à résoudre.
    Voila, je voudrais tronquer un floatant type: f = 1.2325694 et ne laisser que deux chiffres après la virgule. ( f = 1.23 )

    Merci d'avance.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Quel est le sens de tronquer ?

    A l'affichage ? Dans ce cas, un printf avec le format qui va bien suffit. (%.2f)

    En mémoire ? Le problème devient plus complexe.

    Sur le papier, on peut toujours écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    float f = 1.23456789;
    int i;
    i = 100 * f; /* i égal à 123*/
    f = .01 * i /* f pas loin de 1.23*/
    Mais le problème avec les float c'est qu'ils ne sont pas à virgule fixe (d'où leur nom) on risque donc lorsqu'on pose f=1.23; d'obtenir f=1.222222222229.

  3. #3
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    Bonjour,

    ben la tout de suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    float f = 1.2325694;
    int temp_int = (int)(f * 100.0);
    f = temp_int / 100.0;
    c'est peut etre pas tres beau, mais ca marche.

    Sinon si c'est juste pour un affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf( "mon float : %4.2f\n", f );
    suffira

    [edit] qui a dit lent ?
    "vaste programme"

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    Le sens de ma question était tronquer à l'affichage et en l'occurence le bout de code que tu as posté donne justement:

    f = 1.2300000

    et moi je voudrais qu'il m'affiche

    f = 1.23

    Je voudrais enlever tous ces zéros derrière.
    Merci

  5. #5
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    re, si la longeur de flaot est fixe

    printf( "%4.2f", ton_float )
    "vaste programme"

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Points : 14
    Points
    14
    Par défaut
    Merci à ceux qui ont répondu à ma question.
    Il suffisait juste d'utiliser correctement la fonction printf (printf( "%4.2f", ton_float ))

    @+

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

Discussions similaires

  1. Tronquer un float ,00
    Par crush911 dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2013, 23h02
  2. Tronquer un float (n chiffres apres la virgule)
    Par franck06 dans le forum Langage
    Réponses: 8
    Dernier message: 16/06/2009, 17h58
  3. Tronquer Un Float à Trois chifres aprés la virgule
    Par wassimb dans le forum Langage
    Réponses: 20
    Dernier message: 27/11/2007, 17h33
  4. Tronquer un float
    Par guiguikawa dans le forum Delphi
    Réponses: 7
    Dernier message: 20/11/2006, 23h24
  5. tronquer un float
    Par nmerydem dans le forum C
    Réponses: 4
    Dernier message: 15/04/2004, 12h16

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