[C] Arrondis 2 chiffres après virgule

Résolu
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   -  
 NetLander -
Bonjour,

j'ai une variable de type float que je souhaite arrondir a 2 chiffres après la virgule, en C.
J'ai par exemple :

valnum=13.586122
et je voudrais valnum=13.59

J'ai surout vu des fonctions en C++, mais c'est en C que je souhaite.

Si quelqu'un connait ce serait simpa.

Merci.

7 réponses

PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30
 
printf("%1.2lf\n", ton_float_ou_double);

De tête c'est ça je crois :)

Voilà je viens de faire un petit test :

#include <stdio.h>

int main()
{
  float a;

  a = 1.222222;
  printf("%f\n",a);
  printf("%1.2lf\n",a);
  return (0);
}


Qui donne :

etavirp@etavirp:~$ ./a.out
1.222222
1.22
1
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   32
 
salut,

en faite je ne souhaite pas juste l'imprimer sur l'écran mais carrément transformer le nombre.

merci
0
NetLander
 
J'ai essayer sous AIX

si a= 1.22x x etant une valeur suppérieur ou égale a 5. Le resultat n'est pas bon a tout coup.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
à tester, mais je dirais
floor(valnum *100.0 + 0.5) /100.0 ;
0
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   32
 
c'est pas pour le php floor ?

ou alors il faut rajouter une bibliothèque car là ça ne fonctionne pas ^^.

+
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
#include <math.h> et compiler avec -lm
0
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   32
 
c'est quoi "-Im" ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PeterPeterPeter Messages postés 202 Date d'inscription   Statut Membre Dernière intervention   30
 
C'est pour inclure la librairie math lors de la compilation.
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
oui, c'est L minuscule : -lm
0
jerémiethe7 Messages postés 152 Date d'inscription   Statut Membre Dernière intervention   32
 
ok c'est bon ça fonctionne !

Merci pour tout !
0