Comparaison en C++
alocmoa
-
phneveu Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
phneveu Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Voilà,
J'aimerais pouvoir comparer un nombre à sa partie entière( cad pouvoir dire si un nombre est décimal ou entier). Comment puis-je faire. Ca fait un moment que je tourne en rond sur cette question et là je craque !
merci
J'aimerais pouvoir comparer un nombre à sa partie entière( cad pouvoir dire si un nombre est décimal ou entier). Comment puis-je faire. Ca fait un moment que je tourne en rond sur cette question et là je craque !
merci
A voir également:
- Comparaison en C++
- Comparaison million milliard - Accueil - Technologies
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Comparaison samsung a15 et a16 - Accueil - Téléphones
- Comparaison prix amazon - Accueil - Commerce
- Prix Amazon : comment suivre les évolutions de tarifs - Guide
9 réponses
Tu castes ton "float" dans un "unsigned int" comme suit:
...
float valeur1 ;
unsigned int valeur2;
valeur 1 = 3.141592
unsigned int valeur2 = (unsigned int)valeur2;
...
puis reste à comparer 2 entiers.
...
float valeur1 ;
unsigned int valeur2;
valeur 1 = 3.141592
unsigned int valeur2 = (unsigned int)valeur2;
...
puis reste à comparer 2 entiers.
Bah ça change pas grand chose t'affecte une variable supplémentaire pour contenir sa partie entiere du style:
float valeur1;
float valeur2;
valeur 2 = (float)(unsigned int)valeur1;
ou bien
float valeur1;
unsigned int valeur2;
float valeur3;
valeur2 = (unsigned int)valeur1;
valeur3 = (float)valeur2;
float valeur1;
float valeur2;
valeur 2 = (float)(unsigned int)valeur1;
ou bien
float valeur1;
unsigned int valeur2;
float valeur3;
valeur2 = (unsigned int)valeur1;
valeur3 = (float)valeur2;
Voilà le code que je génère
float m=0;
float M;
M= (float)(unsigned int)m;
cout<<"entrer un nombre decimal"<<endl;
cin>>m;
if (m!=M)
cout<<"la partie entiere superieure est:"<<int(m)+1<<endl;
else
cout<<"la partie entiere superieure est:"<<M<<endl;
Le truc c'est qu'il me sort 3 pour 2,6 mais pour 2 il me sort 3
Quel est le problème dans mon code ??
float m=0;
float M;
M= (float)(unsigned int)m;
cout<<"entrer un nombre decimal"<<endl;
cin>>m;
if (m!=M)
cout<<"la partie entiere superieure est:"<<int(m)+1<<endl;
else
cout<<"la partie entiere superieure est:"<<M<<endl;
Le truc c'est qu'il me sort 3 pour 2,6 mais pour 2 il me sort 3
Quel est le problème dans mon code ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
La 1ère méthode que j'ai donnée c'était plutôt du "expérimental" essaie la 2nde elle me parait plus sur.
J'ai trouvé ca dans une autre réponse:
"
n:reel;
s:entier;
début
lire(n);
s=n div1; {div fait la division entière d'1 nbre qlcq}
afficher ('la partie entière de ',,'est ',s);
"
le div est "%" en langage C
"
n:reel;
s:entier;
début
lire(n);
s=n div1; {div fait la division entière d'1 nbre qlcq}
afficher ('la partie entière de ',,'est ',s);
"
le div est "%" en langage C
Desole j'ai pas fini:
une fois que tu as le nombre et sa partie entiere, tu soustrait l'un à l'autre. Si ils sont égaux le nombre est entier, sinon il ne l'est pas
une fois que tu as le nombre et sa partie entiere, tu soustrait l'un à l'autre. Si ils sont égaux le nombre est entier, sinon il ne l'est pas