Ответ 1

В дополнение к другим ответам:

float theFloat = 1.23456;
int rounded = roundf(theFloat); NSLog(@"%d",rounded);
int roundedUp = ceil(theFloat); NSLog(@"%d",roundedUp);
int roundedDown = floor(theFloat); NSLog(@"%d",roundedDown);
// Note: int can be replaced by float

Для округления к определенным десятичным знакам см. вопрос, упомянутый Алексом Казаевым.

Ответ 2

Функция lroundf() сделает это:

float a=20.49;
int myInt = lroundf(a);

Ответ 3

Преобразовать в int и затем преобразовать обратно в float.

CGFloat *myFloat = 100.765;
NSInteger *myInteger = myFloat;
CGFloat *newFloat = myInteger;

Это будет работать