Rechercher : dans
Par :

La division en langage C

Dernière réponse le 8 nov 2009 à 20:34:27 sophie85, le 8 nov 2009 à 17:14:34 
 Signaler ce message aux modérateurs

Bonjour,
pouvez-vous me dire quelle est la commande à utiliser pour arrondir à un centième près le résultat d'une division en langage C.

exemple:
je souhaite avoir pour: 100/3
un résultat de 33.3 et non de 33.3333333333333333

merci :)

Configuration: Windows Vista Internet Explorer 7.0

Meilleures réponses pour « La division en langage C » dans :
Langage C++ - Les types de données Voir Les 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 opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...
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...
Langage C - Les chaînes de caractères 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 chaîne...

1

Pacorabanix, le 8 nov 2009 à 18:47:36

Si c'est pour l'affichage, voir les format de printf !

sinon voici une manière :

tu veux faire a/b

alors tu fais la division, tu la multiplie par 10, tu convertis ça en un entier (le résultat sera tronqué) et tu le remets dans un float, puis tu divises par 10.

pour arrondir et non tronquer, alors il faut ajouter 5 après avoir mutliplié par 10.

Répondre à Pacorabanix

2

loupius, le 8 nov 2009 à 18:57:26

On peut faire un truc tordu du genre:
char chaine[32];
double nombre = 100/3;
sprintf(chaine, "%.2lf", nombre);
double resultat = atof(chaine);

C'est tordu mais ça doit aboutir au résultat escompté.
Bonne continuation.

Répondre à loupius

4

fiddy, le 8 nov 2009 à 19:17:20

Ou plus simple :

double nombre=100/3;
double resultat=(int)(a*10)/10.0;

Mais bon, libre à toi de passer par les chaînes de caractères ;-))).
Google is your friend

Répondre à fiddy

5

sophie85, le 8 nov 2009 à 19:23:33

Merci Fiddy pour ta réponse :)

Répondre à sophie85

6

loupius, le 8 nov 2009 à 19:27:22

Ahhhgh, je savais bien que ma réponse était tordue !
Mais ta réponse est satisfaisante... à une coquille près ;-)
Bonne soirée.

Répondre à loupius

7

fiddy, le 8 nov 2009 à 20:21:18

Très juste : double nombre=100/3.0; ^^

Bien vu ;-))).
Google is your friend

Répondre à fiddy

8

 Pacorabanix, le 8 nov 2009 à 20:34:27

Euh... c'est exactement ce que j'ai proposé...

Répondre à Pacorabanix

3

sophie85, le 8 nov 2009 à 19:10:11

Merci pour vos réponses Loupius et Pacorabanix :)
maintenant le résultat est bien à un centième près
bonne soirée :)

Répondre à sophie85
Collection CommentÇaMarche.net