[C] Arrondis 2 chiffres après virgule

Résolu
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.
Configuration: Windows XP
Firefox 2.0.0.16
DEV C++ 4.9.9.2

7 réponses

  1. 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
    1. salut,

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

      merci
      0
    2. 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
  2. Contributeur
    à tester, mais je dirais
    floor(valnum *100.0 + 0.5) /100.0 ;
    0
    1. c'est pas pour le php floor ?

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

      +
      0
  3. Contributeur
    #include <math.h> et compiler avec -lm
    0
    1. c'est quoi "-Im" ??
      0
      1. C'est pour inclure la librairie math lors de la compilation.
        0
        1. Contributeur
          oui, c'est L minuscule : -lm
          0
          1. ok c'est bon ça fonctionne !

            Merci pour tout !
            0