Bonsoir,
Je me retrouve face à un problème "tout bête" que je ne sais pas résoudre...
Comment prendre l'inverse d'un nombre décimal tel que 0.1, 0.001, 0.001... sous forme d'un int ?
J'ai réussi à écrire en C le calcul approché de l'intégrale de 0 à 1 de 4/(1+x²) grâce à la formule de Simpson composée qui me donne une approximation de Pi.
Je donne pour le moment la largeur du pas p (je veux laisser ce choix ultérieurement à l'utilisateur) : p =0.001 (par exemple) qui va me donner 1000 comme terme de la boucle de calcul.
Le programme fonctionne avec déclaration de float p =0.001; et int nb=1000;
mais si je m'avise d'écrire int nb; puis nb = floor(1/p) je déclenche une erreur à la compilation : warning : try to convert double to int...
J'ai fini, difficilement, par comprendre pourquoi...
Par contre, je ne sais pas comment contourner le problème : p=0.001, son inverse est 1000, nombre entier... Le problème vient du floor qui renvoie un double...
Y a-t-il moyen de convertir un décimal (double ou float) dont on sait que sa partie décimale est nulle (c'est le cas de 1/p) en un nombre entier ?
Je vous remercie par avance de votre indulgence.
Et je remercie, dans la foulée, tout familier du C qui viendra me tirer du marais où je me suis enlisé.
Cordialement,
@+
Partager