Ich verwendeC(nicht C++).
Ich muss eine Float-Nummer in eine int
my_var = (int)my_var;
So einfach ist das. Grundsätzlich brauchen Sie es nicht, wenn die Variable int ist.
Verwendung in C
int C = var_in_float;
Sie werden implizit konvertieren
Vielen Dank
Wenn Sie es abrunden möchten, können Sie eine kleine Funktion oder eine solche Definition erstellen:
#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;
Seien Sie vorsichtig, im Idealfall sollten Sie sich vergewissern, dass sich Float zwischen INT_MIN und INT_MAX befindet, bevor Sie den Cast ausführen.
double a = 100.3;
printf("%f %d\n", a, (int)(a* 10.0));
Output Cygwin 100.3 1003
Output MinGW: 100.3 1002
Die Verwendung von (int) zum Konvertieren von double in int scheint nicht ausfallsicher zu sein
Mehr dazu finden Sie hier: Konvertiere Double in Int?