La division en langage C
Résolu/Fermé
sophie85
-
8 nov. 2009 à 17:14
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 8 nov. 2009 à 20:34
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 8 nov. 2009 à 20:34
A voir également:
- Division en c
- Microsoft skype division - Télécharger - Téléphonie & Visio
- Diviser un pdf en plusieurs pdf - Guide
- La division en langage c - Forum C
- Diviser page word en 3 horizontalement - Forum Word
- Diviser une photo en 3 - Guide
3 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
8 nov. 2009 à 18:47
8 nov. 2009 à 18:47
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.
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.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
8 nov. 2009 à 18:57
8 nov. 2009 à 18:57
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.
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.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
8 nov. 2009 à 19:17
8 nov. 2009 à 19:17
Ou plus simple :
Mais bon, libre à toi de passer par les chaînes de caractères ;-))).
double nombre=100/3; double resultat=(int)(a*10)/10.0;
Mais bon, libre à toi de passer par les chaînes de caractères ;-))).
sophie85
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
8 nov. 2009 à 19:23
8 nov. 2009 à 19:23
merci Fiddy pour ta réponse :)
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
8 nov. 2009 à 19:27
8 nov. 2009 à 19:27
Ahhhgh, je savais bien que ma réponse était tordue !
Mais ta réponse est satisfaisante... à une coquille près ;-)
Bonne soirée.
Mais ta réponse est satisfaisante... à une coquille près ;-)
Bonne soirée.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
>
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
8 nov. 2009 à 20:21
8 nov. 2009 à 20:21
Très juste : double nombre=100/3.0; ^^
Bien vu ;-))).
Bien vu ;-))).
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
660
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
8 nov. 2009 à 20:34
8 nov. 2009 à 20:34
euh... c'est exactement ce que j'ai proposé...