Arrondir float c++

Fermé
shub85 - 3 févr. 2008 à 18:09
DrakEmono Messages postés 17 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 28 novembre 2017 - 6 févr. 2014 à 18:09
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??

4 réponses

Char Snipeur Messages postés 9688 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 2 octobre 2020 1 328
4 févr. 2008 à 09:04
voir aussi du coté de round()
http://jp.barralis.com/linux-man/man3/round.3.php
4
Merci beaucoup...
2
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
tu peut tout simplement écrire
int a;
float f;
a=(int )(f+0.5 );
0
DrakEmono Messages postés 17 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 28 novembre 2017
Modifié par DrakEmono le 6/02/2014 à 18:10
C'est exactement ce qu'a dit Raph... et un simple round() suffit largement.
0
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 83
3 févr. 2008 à 20:34
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
et avec ceil() ??
0
DrakEmono Messages postés 17 Date d'inscription vendredi 6 décembre 2013 Statut Membre Dernière intervention 28 novembre 2017
6 févr. 2014 à 18:08
Il demande un arrondi à l'entier proche, ce n'est pas ce que fait ceil().
0