Arrondir float c++

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. et avec ceil() ??
    0
    1. Il demande un arrondi à l'entier proche, ce n'est pas ce que fait ceil().
      0
  2. Merci beaucoup...
    2
    1. 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. tu peut tout simplement écrire
      int a;
      float f;
      a=(int )(f+0.5 );
      0
    3. C'est exactement ce qu'a dit Raph... et un simple round() suffit largement.
      0
  3. 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