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.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
由
翻译强力驱动
问题:
回答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:
Use ceil function:
int intValue = (int)ceil(yourValue); 回答3:
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.
回答4:
if we have float value like 13.123 to convert it into integer like 13
Code
float floatnumber=13.123; //you can also use CGFloat instead of float
NSLog(@"%.f",floatnumber); // use for print in command prompt