在Objective-C中将float转换为int

时间:2012-01-09 08:13:39

标签: objective-c

如何在舍入到下一个整数的同时将float转换为int?例如,1.00001将变为2,而1.9999将变为2。

4 个答案:

答案 0 :(得分:63)

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;

答案 1 :(得分:11)

使用ceil功能:

int intValue = (int)ceil(yourValue);

答案 2 :(得分:1)

您可以使用以下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);

希望它有所帮助。

答案 3 :(得分:0)

如果我们有像13.123这样的浮点值将其转换为像13这样的整数

<强>代码

float floatnumber = 13.123; //你也可以使用CGFloat而不是float

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