Arrondir float c++

shub85 -  
DrakEmono Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, Je voulais savoir si il existait une fonction en C ou C++ pour arrondir un float (1.22) -> entier (1), ou 1,55 -> 2..
Merci.. Pouveez vous m'aider??
Configuration: Windows Vista
Firefox 2.0.0.11

4 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    voir aussi du coté de round()
    http://jp.barralis.com/linux-man/man3/round.3.php
    4
  2. shub85
     
    Merci beaucoup...
    2
    1. Raphboisxxx
       
      Tu peux toujours aussi utiliser un cast vers un int, tu perds tes decimales .... pas la meilleure solution mais c'est toujours possible, oubli pas ton fflush sinon tu peux avoir de mauvaises surprise aussi
      0
    2. mar
       
      tu peut tout simplement écrire
      int a;
      float f;
      a=(int )(f+0.5 );
      0
    3. DrakEmono Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
       
      C'est exactement ce qu'a dit Raph... et un simple round() suffit largement.
      0
  3. dandypunk Messages postés 838 Statut Membre 83
     
    Il y a deux solutions :

    -A l'affichage:
    printf("%0f",variable)

    -Pour utiliser la valeur il faut utiliser les fonctions ceil(variable) et floor(variable) qui retourne l'entier >=variable (resp <= variable)

    A la volée la fonction donne

    #include <math.h>
    
    int iArrondi(float fValeur)
    {
      
      float fDecimal;
      int iRésultat;
       
      if (fValeur<0)
    
         {
              fDecimal=fValeur-ceil(fValeur);
              if (fDecimal > -0.5)
                 iResultati=ceil(fValeur);
              else
                iResultati=floor(fValeur);
    
         }
      else
         {
               fDecimal=fValeur-floor(fValeur);
               if (fDecimal< 0.5)
                 iResultati=floor(fValeur);
              else
                 iResultat=ceil(fValeur);
         }
      
      return iResultat;
    }
    1
  4. invite
     
    et avec ceil() ??
    0
    1. DrakEmono Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
       
      Il demande un arrondi à l'entier proche, ce n'est pas ce que fait ceil().
      0