Bonjour,


J'ai une question dont j'imagine la réponse comme assez simple, mais je n'ai pas réussi à la trouver pour l'instant...

J'ai un double qui contient la valeur 2,3.

J'ai besoin de récupérer sous forme d'entier (long, int) la partie décimale c'est à dire 3.

J'ai essayé "bêtement" de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
double nbAVirgule = 2.3;
long partieEntiere = (long)nbAVirgule;
long partieDecimale = nbAVirgule*10 - partieEntiere*10;
Et bien, partieDecimale = 2
Alors que j'ai bien partieEntiere = 2.

Je me suis dit que c'est ma conversion en long pour obtenir partieDecimale qui était la cause, donc j'ai testé la chose suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
double nbAVirgule = 2.3;
long partieEntiere = (long)nbAVirgule;
double tmp = nbAVirgule*10 - partieEntiere*10;
long partieDecimale = (long)tmp;
Vous me direz que ça revient au même... mais ce qui est marrant c'est que tmp est bien égal à 3 , partieDecimale restant égale à 2...

Merci de bien vouloir m'éclairer sur la bonne façon de procéder pour isoler sous forme d'entier la partie décimale d'un nombre...