Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert float to int in Objective-C

Tags:

objective-c

How can I convert a float to int while rounding up to the next integer? For example, 1.00001 would go to 2 and 1.9999 would go to 2.

like image 940
Streetboy Avatar asked Jan 09 '12 08:01

Streetboy


3 Answers

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;
like image 96
iOS dev Avatar answered Nov 06 '22 09:11

iOS dev


Use ceil function:

int intValue = (int)ceil(yourValue);
like image 23
Vladimir Avatar answered Nov 06 '22 09:11

Vladimir


You can use following C methods to get the int values from different dataTypes.

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

These functions return float, double and long double respectively. But the job of these function is to get ceil of or floor of the argument. As in http://en.wikipedia.org/wiki/Floor_and_ceiling_functions

Then you can cast the return value to desired type like.

int intVariable = (int)ceilf(floatValueToConvert);

Hope it is helpful.

like image 1
Suhail Bhat Avatar answered Nov 06 '22 10:11

Suhail Bhat