salut j ai un jolie truc bizard...
j ai un code :
double nb = 3.905
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 void my_putfloat(double nb) { int tmp; tmp = nb; putnbr(tmp); nb = (nb - tmp) * 1000000; putchar('.'); tmp = nb; putnbr(tmp); }
donc je devrais suite a cette methode retrouver 3.905, mais j obtiens 3.904999
il me desarrondie (si je puis me permettre l expression) mon resultat
j ai verifier et c est en faite tmp qui se vois attribuer 904999... donc j ai fais un autre teste
et ca ca marche... quel est le probleme avec double ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 void my_putfloat(double nbr) { int tmp; float nb; nb = 3.095; tmp = nb; putnbr(tmp); nb = (nb - tmp) * 1000000; putchar('.'); tmp = nb; putnbr(tmp); }
y a t il un probleme lors de l attribution de la valeur d un float (ou d un double) a un int
Partager