J'utiliseC(pas C++).
J'ai besoin de convertir un nombre flottant en une int
my_var = (int)my_var;
Aussi simple que cela. En gros, vous n'en avez pas besoin si la variable est int.
Utilisation en C
int C = var_in_float;
Ils vont convertir implicitement
Je vous remercie
Si vous voulez l'arrondir, vous pouvez créer une petite fonction ou définir comme ceci:
#define FLOAT_TO_INT(x) ((x)>=0?(int)((x)+0.5):(int)((x)-0.5))
float my_float = 42.8f;
int my_int;
my_int = (int)my_float; // => my_int=42;
my_int = FLOAT_TO_INT(my_float); // => my_int=43;
Attention, vous devez idéalement vérifier que le flottant se situe entre INT_MIN et INT_MAX avant de le lancer.
double a = 100.3;
printf("%f %d\n", a, (int)(a* 10.0));
Output Cygwin 100.3 1003
Output MinGW: 100.3 1002
Utiliser (int) pour convertir double en int ne semble pas sûr
Vous pouvez trouver plus d'informations à ce sujet ici: Convertir double en int?