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之间。