Posez votre question Signaler

[C] Extraire partie entière et partie décimal [Résolu]

Florent - Dernière réponse le 27 juin 2013 à 14:57
Hello !

J'ai un souci en C : je cherche à réaliser un programme, et à un moment j'ai besoin de récupérer la partie entière et la partie décimale d'un nombre dans deux variables différentes.

Par exemple, si j'ai un nombre 4.1256, j'aimerais obtenir :
var1 = 4
var2 = 1256

En php, il existe des fonctions pour cela, mais en C j'ai rien trouvé :S Je m'en remets donc à vous, en espérant que quelqu'un pourra me filer un coup de pouce !

Bonne soirée, merci d'avance :)
Lire la suite 
Réponse
+53
moins plus
#include <math.h>

float a = 1.5;
// partie entière
int o = floor(a);
// partie décimale
float u = a-o;

voili voilou
Ajouter un commentaire
Réponse
+12
moins plus
tu peux utiliser pour extraire la partie entière la fonction floor qui se trouve dans la bibliothèque math.h, elle reçoit le double et retourne sa partie entière.
bonne chance!
Ajouter un commentaire
Réponse
+6
moins plus
Tu peux faire un truc du genre :
double x =  4.125
int partent = (int) x; // 4
double partdec = x - partent; // 0.1256

Pour compter le nombre de décimal tu peux feinter en écrivant la partie décimale dans une chaîne et compter le nombre de caractère :
char buffer[255];
unsigned int nb_dec;
sprintf(buffer,"%lf",partdec);
nb_dec=strlen(buffer)-2; // ou truc dans le genre, le -2 sert à zapper le '0.'

Bonne chance
Ajouter un commentaire
Réponse
-1
moins plus
voila le programme ici

http://tutodev1.blogspot.com/2013/06/VAR.html
karara20- 27 juin 2013 à 12:47
tout les variable sont utile,pour que le programme marche .
et pour la chaine de caractere
elle nos ide pour utilise sscanf
Répondre
fiddy 10480Messages postés samedi 5 mai 2007Date d'inscription ContributeurStatut 23 août 2015 Dernière intervention - 27 juin 2013 à 14:15
tout les variable sont utile,pour que le programme marche
La variable utilisée pour le séparateur entre les parties entière et décimale ne sert à rien... Tu peux t'en passer très facilement...

elle nos ide pour utilise sscanf
Tu peux traduire ?
Répondre
karara20- 27 juin 2013 à 14:32
pour que la fonction sscanf() marche la variable dois être un chaîne de caractère ,
Répondre
fiddy 10480Messages postés samedi 5 mai 2007Date d'inscription ContributeurStatut 23 août 2015 Dernière intervention - 27 juin 2013 à 14:45
Oui c'est ce que je reproche à ta solution. Garde à l'esprit qu'il ne faut pas adapter le problème à la solution, mais le contraire ;-)
Le point de départ est un nombre pas une chaîne, donc exit sscanf(). Ou alors, on convertit le nombre en chaîne.
Répondre
karara20- 27 juin 2013 à 14:57
ah oui; merci
Je vais travailler sur cette probleme
Répondre
Ajouter un commentaire
Réponse
-2
moins plus
Tu peux convertir ton nombre en chaine de carateres et utiliser les fonctions sur les chaines de caracteres. Par exemple tu peux utiliser strsep. Qui coupera ta chaine en deux chaines. Apres tu reconvertis tes 2 chaines en entiers si tu veux que ce soit des numériques.

Tu trouveras une liste de fonctions ici :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/string.3.html

Bonne continuation.
Ajouter un commentaire
Ce document intitulé «  [C] Extraire partie entière et partie décimal  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.