Rechercher : dans
Par :

Arrondir float c++

Dernière réponse le 25 sep 2009 à 15:31:12 shub85, le 3 fév 2008 à 18:09:11 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « arrondir float c++ » dans :
[mythes] Photo nette à partir d'une photo floue VoirMythe Avec un traitement par ordinateur, on peut déflouter une photo, c'est-à-dire obtenir une photo nette à partir d'une photo floue. Réalité FAUX. Explications L'ordinateur ne peut pas inventer les détails de l'image perdus par le flou. Pour...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données VoirLes types de données Les données manipulées en langage C sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire (le...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

dandypunk, le 3 fév 2008 à 20:34:06
  • +2

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;
}

Répondre à dandypunk

2

Char Snipeur, le 4 fév 2008 à 09:04:04
  • +1

Voir aussi du coté de round()
http://jp.barralis.com/linux-man/man3/round.3.php
Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur

Répondre à Char Snipeur

3

shub85, le 5 fév 2008 à 11:26:51

Merci beaucoup...

Répondre à shub85

4

Raphboisxxx, le 7 mar 2009 à 04:01:55

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

Répondre à Raphboisxxx

5

 invite, le 25 sep 2009 à 15:31:12

Et avec ceil() ??

Répondre à invite
Collection CommentÇaMarche.net