C将浮点数转换为int

我正在使用C (不是C ++)。

我需要将浮点数转换为int 。 我不想舍入到最接近的数字,我只是想消除整数部分之后的内容。 就像是

  4.9  - > 4 .9 - > 4 

 my_var = (int)my_var; 

就如此容易。 如果变量是int,基本上你不需要它。

在C中使用

 int C = var_in_float; 

他们将隐含转换

谢谢

如果你想围绕它,你可以做一个小function或这样的定义:

 #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; 

注意,理想情况下,在构建之前,应validationfloat是否在INT_MIN和INT_MAX之间。