Problème de division en C++

Fermé
etudiantmastere - 22 sept. 2011 à 01:27
 le père - 22 sept. 2011 à 07:50
Bonjour,

j'ai rencontré un problème lors de l'exécution du mon code.j'ai pas compris d ou vient le problème. toujours le résultat de la division est zéro malgré que le résultat doit être de type double.
voici mon code:

int kni=chercherdegreenode(ni->id);
int knj=chercherdegreenode(nj->id);
int kij=kni*knj;
int k=2*m;
double deg=(double)(kij/k);

il faut noter que j'ai testé tout le code(k, kni,knj,m(int),kij,k) tout est juste sauf deg est égale à zéro

Merci de me répondre dans le temps le plus proche

1 réponse

Bonjour

kij et k sont des entiers
donc la division (kij/k) est faite entre entiers, avec un résultat tronqué.
Si tu convertis après coup cet entier en double, ça ne fait pas revenir les chiffres après la virgule.
Ce qu'il faut, c'est faire la division entre un double et un autre nombre (int ou double peu importe) :

double deg=(double)kij/k;

ici kij est d'abord transformé en double avant la division, les calculs seront bien faits en virgule flottante.
3