Rechercher : dans
Par :

[C] Arrondis 2 chiffres après virgule

Dernière réponse le 19 nov 2009 à 20:57:03 jerémiethe7, le 22 jui 2008 à 14:26:55 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [C] Arrondis 2 chiffres après virgule » dans :
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...

1

PeterPeterPeter, le 22 jui 2008 à 14:58:19

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

Répondre à PeterPeterPeter

2

jerémiethe7, le 22 jui 2008 à 15:11:02

Salut,

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

merci

Répondre à jerémiethe7

10

 NetLander, le 19 nov 2009 à 20:57:03

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.

Répondre à NetLander

3

dubcek, le 22 jui 2008 à 15:38:43

à tester, mais je dirais
floor(valnum *100.0 + 0.5) /100.0 ;

Répondre à dubcek

4

jerémiethe7, le 22 jui 2008 à 15:51:14

C'est pas pour le php floor ?

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

+

Répondre à jerémiethe7

5

dubcek, le 22 jui 2008 à 15:57:34

#include <math.h> et compiler avec -lm

Répondre à dubcek

6

jerémiethe7, le 22 jui 2008 à 18:29:07

C'est quoi "-Im" ??

Répondre à jerémiethe7

7

PeterPeterPeter, le 22 jui 2008 à 21:58:44

C'est pour inclure la librairie math lors de la compilation.

Répondre à PeterPeterPeter

8

dubcek, le 23 jui 2008 à 10:23:20

Oui, c'est L minuscule : -lm

Répondre à dubcek

9

jerémiethe7, le 23 jui 2008 à 13:22:21

Ok c'est bon ça fonctionne !

Merci pour tout !

Répondre à jerémiethe7