C convertir la virgule flottante en int

J’utilise C (pas C ++).

J’ai besoin de convertir un nombre float en un int . Je ne veux pas arrondir au nombre le plus proche, je veux simplement éliminer ce qui est après la partie entière. Quelque chose comme

  4,9 -> 4,9 -> 4 

 my_var = (int)my_var; 

Aussi simple que cela. Fondamentalement, 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, idéalement, vous devez vérifier que le flottant se situe entre INT_MIN et INT_MAX avant de le lancer.