Как преобразовать float
в int
при округлении до следующего целого числа? Например, 1.00001 будет идти до 2 и 1.9999 будет идти до 2.
Преобразовать float в int в Objective-C
Ответ 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