Преобразовать float в int в Objective-C - PullRequest
10 голосов
/ 09 января 2012

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

.

Ответы [ 4 ]

63 голосов
/ 09 января 2012
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;
11 голосов
/ 09 января 2012

Использование ceil Функция:

int intValue = (int)ceil(yourValue);
1 голос
/ 29 мая 2014

Вы можете использовать следующие методы 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);

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

0 голосов
/ 29 декабря 2015

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

код

число с плавающей запятой = 13.123; // вы также можете использовать CGFloat вместо float

NSLog(@"%.f",floatnumber); // use for print in command prompt  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...