Posez votre question Signaler

Arrondir float c++

shub85 - Dernière réponse le 8 mai 2011 à 11:29
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??
Lire la suite 

Arrondir float c++ »

6 réponses
Réponse
+3
moins plus
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;
}
Ajouter un commentaire
Réponse
+1
moins plus
voir aussi du coté de round()
http://jp.barralis.com/linux-man/man3/round.3.php
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup...
Raphboisxxx - 7 mars 2009 à 04:01
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
mar - 8 mai 2011 à 11:29
tu peut tout simplement écrire
int a;
float f;
a=(int )(f+0.5 );
Ajouter un commentaire
Réponse
+0
moins plus
et avec ceil() ??
Ajouter un commentaire
Ce document intitulé « arrondir float c++ » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook