salut j ai un jolie truc bizard...
j ai un code :
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);
}
double nb = 3.905

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

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);
}
et ca ca marche... quel est le probleme avec double ?

y a t il un probleme lors de l attribution de la valeur d un float (ou d un double) a un int