Преобразовать float в int в Objective-C

Как преобразовать float в int при округлении до следующего целого числа? Например, 1.00001 будет идти до 2 и 1.9999 будет идти до 2.

Ответ 1

float myFloat = 3.333

// for nearest integer rounded up (3.333 -> 4):
int result = (int)ceilf(myFloat );

// for nearest integer (3.4999 -> 3, 3.5 -> 4):
int result = (int)roundf(myFloat );

// for nearest integer rounded down (3.999 -> 3):
int result = (int)floor(myFloat);

// For just an integer value (for which you don't care about accuracy) 
int result = (int)myFloat;

Ответ 2

Используйте ceil:

int intValue = (int)ceil(yourValue);

Ответ 3

Вы можете использовать следующие методы C для получения значений int из разных типов данных.

extern float ceilf(float);
extern double ceil(double);
extern long double ceill(long double);

Эти функции возвращают float, double и long double соответственно. Но задача этой функции состоит в том, чтобы получить пол или пол аргумента. Как в http://en.wikipedia.org/wiki/Floor_and_ceiling_functions

Затем вы можете присвоить возвращаемое значение желаемому типу.

int intVariable = (int)ceilf(floatValueToConvert);

Надеюсь, это полезно.

Ответ 4

если у нас есть значение float, например 13.123, чтобы преобразовать его в целое число, например 13

код

float floatnumber = 13.123;//вы также можете использовать CGFloat вместо float

NSLog(@"%.f",floatnumber); // use for print in command prompt