Bonjours,

j'aimerais convertir un float en 2 int, j'ai essayer d'utiliser les cast ... la ce code marche pour uniquement 2 chiffre apres la virgule ... et encore sa depend des architecture ... merci de votre aide !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
#include <unistd.h>                                                                        
#include "fct.h"                                                                           
 
void                    floats(double f)                                                   
{                                                                                          
  int                   nbe;                                                               
  double                test;                                                              
  int                   nbv;                                                               
  int                   k;                                                                 
 
  nbe = (int)f;                                                                            
  my_put_nbr(nbe);                                                                         
  write(1, ".", 1);                                                                        
  test = f - (double)nbe;                                                                  
  k = compt(test);                                                                         
  while (k != 0)                                                                           
    {                                                                                      
    test = test * 10;                                                                      
    k--;                                                                                   
    }                                                                                      
  nbv = (int)test;                                                                         
  nbv++;                                                                                   
  my_put_nbr(nbv);                                                                         
}                                                                                          
 
int             compt(double n)                                                            
{                                                                                          
  int           i;                                                                         
 
  i = 0;                                                                                   
  while (n < 10)                                                                           
    {                                                                                      
      n = n * 10;                                                                          
      i++;                                                                                 
    }                                                                                      
  return (i);                                                                              
}