将NSInteger转换为Float和Vice -versa

时间:2012-12-20 12:01:53

标签: objective-c ios ios5 nsinteger

我有基本疑问。我必须转换float minutes =( (10.09/60 ) % 60); 但错误是invalid to binary expression(double to double)。 怎样才能使这个计算变得容易.. 我首先要做的是 float minutes =( (10.09/60 ) 然后尝试将分钟转换为NSInterger以解决模块(%)操作..

但是我怎么能这样做......或者建议其他解决方案来计算..

float minutes =( (10.09/60 ) % 60);

3 个答案:

答案 0 :(得分:2)

要使用%,您必须使用int。所以:(int)(10.09)%60应该有用。

答案 1 :(得分:2)

%运算符不适用于浮点值。你必须使用一个函数来计算你想要的东西。这是它的基本伪代码:

B%A = B - (楼层(B / A)* A)

还有一些库函数可以在math.h或tgmath.h

中为你完成

另外,您可以使用: fmod()或fmodf()来自。

答案 2 :(得分:1)

您可以根据要求使用以下操作

浮动myFloat = 3.333

 //for nearest small integer:
int result = (int)ceilf(myFloat );

 //for nearest big integer:
int result = (int)roundf(myFloat );

 //for nearest integer:
int result = (int)floor(myFloat);

//只是一个整数值 int result =(int)(myFloat);