hacker_mt
Messages postés35Date d'inscriptionsamedi 14 mai 2005StatutMembreDernière intervention 4 novembre 2010
-
1 août 2008 à 01:35
hacker_mt
Messages postés35Date d'inscriptionsamedi 14 mai 2005StatutMembreDernière intervention 4 novembre 2010
-
1 août 2008 à 14:23
Bonjour tout le monde, voici mon probleme c'est surement assez débile mais je n'arrive pas a trouver comment faire, voici mon code :
main(){
float i, j;
printf("%f\n", g);
i=0;
scanf("%f", &j);
while(i<5){
printf("%f, %f\n", i, j);
if(i==j){
printf("%f", i);
}
i=i+0.1;
}
Sleep(20000);
}
Le probleme c'est que i devrait prendre les valeurs 0; 0.1; ......; 4.9; 5 alors que en fait dans mon programme il n'a pas de valeur precise par exemple quand i devrait etre egale a 4.9, il est en fait egale a 4.899998.
Comment résoudre ce probleme merci d'avance.
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 1 août 2008 à 14:11
les nombres flottants sont d'une précision limitée; ainsi il ne faut jamais écrire d'égalité, mais vérifier que, par exemple, la différence entre deux nombres est inférieurs à une valeur d'erreur limite :