Voil=E0 je suis en train de faire un petit programme de conversion (
Chiffres Arabes =3D> Chiffres Romains ) et j'ai quelque difficult=E9 pour
extraire l'unit=E9,la dizaine ou la centaine d'un nombre :
J'ai ceci comme code :
int nombre;
double Nombre =3D nombre;
int unit=E9s =3D (Nombre/10 - nombre/10) * 10;
Alors "nombre" est le nombre que l'uilisateur a donner plus tot.
Voilà je suis en train de faire un petit programme de conversion ( Chiffres Arabes => Chiffres Romains ) et j'ai quelque difficulté pour extraire l'unité,la dizaine ou la centaine d'un nombre : J'ai ceci comme code :
int nombre; double Nombre = nombre;
int unités = (Nombre/10 - nombre/10) * 10;
Alors "nombre" est le nombre que l'uilisateur a donner plus tot.
normalement j'extrait donc bien l'unité du nombre mais le compilateur me répond :
possible loss of precision
Quelqu'un pourrait me dire comment évité cette erreur de compilation et pourquoi elle existe ?
Bien que ce ne soit pas la bonne solution, voila le code que tu dois ecrire pour ne pas avoir d'erreur :
int nombre = ?; int res = ( ((int)(((double)res)/10)) - res/10 ) * 10; Toutes les parenthèses ne sont pas necessaire...
La bonne solution est bien plus simple : int nombre = ?; int res = nombre % 10;
a%b correspond au reste de la division entiere de a/b, c'est exactement ce que tu veux.
cdt, Myst
thoralfgutierrez@gmail.com wrote:
Voilà je suis en train de faire un petit programme de conversion (
Chiffres Arabes => Chiffres Romains ) et j'ai quelque difficulté pour
extraire l'unité,la dizaine ou la centaine d'un nombre :
J'ai ceci comme code :
int nombre;
double Nombre = nombre;
int unités = (Nombre/10 - nombre/10) * 10;
Alors "nombre" est le nombre que l'uilisateur a donner plus tot.
Voilà je suis en train de faire un petit programme de conversion ( Chiffres Arabes => Chiffres Romains ) et j'ai quelque difficulté pour extraire l'unité,la dizaine ou la centaine d'un nombre : J'ai ceci comme code :
int nombre; double Nombre = nombre;
int unités = (Nombre/10 - nombre/10) * 10;
Alors "nombre" est le nombre que l'uilisateur a donner plus tot.
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; ) Mais comment utiliser la meme chose pour extraire la dizaine ou la centaine ? Et est ce que tu pourrait m'expliquer int res = ( ((int)(((double)res)/10)) - res/10 ) * 10; ... Je ne vois pas trop a quoi cela corespond ( le double par exemple, que fait il là tout seul ? )
Encore merci pour votre patience
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; )
Mais comment utiliser la meme chose pour extraire la dizaine ou la
centaine ?
Et est ce que tu pourrait m'expliquer int res = (
((int)(((double)res)/10)) - res/10 ) * 10; ... Je ne vois pas trop a
quoi cela corespond ( le double par exemple, que fait il là tout seul
? )
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; ) Mais comment utiliser la meme chose pour extraire la dizaine ou la centaine ? Et est ce que tu pourrait m'expliquer int res = ( ((int)(((double)res)/10)) - res/10 ) * 10; ... Je ne vois pas trop a quoi cela corespond ( le double par exemple, que fait il là tout seul ? )
Encore merci pour votre patience
MoxLotus
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; ) Mais comment utiliser la meme chose pour extraire la dizaine ou la centaine ? Et est ce que tu pourrait m'expliquer int res = ( ((int)(((double)res)/10)) - res/10 ) * 10; ... Je ne vois pas trop a quoi cela corespond ( le double par exemple, que fait il là tout seul ? )
Encore merci pour votre patience
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; )
Mais comment utiliser la meme chose pour extraire la dizaine ou la
centaine ?
Et est ce que tu pourrait m'expliquer int res = (
((int)(((double)res)/10)) - res/10 ) * 10; ... Je ne vois pas trop a
quoi cela corespond ( le double par exemple, que fait il là tout seul
? )
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; ) Mais comment utiliser la meme chose pour extraire la dizaine ou la centaine ? Et est ce que tu pourrait m'expliquer int res = ( ((int)(((double)res)/10)) - res/10 ) * 10; ... Je ne vois pas trop a quoi cela corespond ( le double par exemple, que fait il là tout seul ? )
Encore merci pour votre patience
Olivier Thomann
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; ) Mais comment utiliser la meme chose pour extraire la dizaine ou la centaine ? Si je ne m'abuse il te suffit de faire le même principe avec le nombre
divisé par 10. Genre: 86 86 % 10 = 6 (unité) (86 / 10) = 8 8 % 10 = 8 (dizaine) etc. pour récupérer les centaintes.... -- Olivier
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; )
Mais comment utiliser la meme chose pour extraire la dizaine ou la
centaine ?
Si je ne m'abuse il te suffit de faire le même principe avec le nombre
divisé par 10.
Genre:
86
86 % 10 = 6 (unité)
(86 / 10) = 8
8 % 10 = 8 (dizaine)
etc. pour récupérer les centaintes....
--
Olivier
Bon pour l'unité ca fonctionen a merveille ( int res = nombre % 10; ) Mais comment utiliser la meme chose pour extraire la dizaine ou la centaine ? Si je ne m'abuse il te suffit de faire le même principe avec le nombre
divisé par 10. Genre: 86 86 % 10 = 6 (unité) (86 / 10) = 8 8 % 10 = 8 (dizaine) etc. pour récupérer les centaintes.... -- Olivier
MoxLotus
Oo Bon évidement que sa fonctionne :p ( j'aurais dû y penser ^^ ) Merci les gars !
Oo Bon évidement que sa fonctionne :p ( j'aurais dû y penser ^^ )
Merci les gars !