如何在iPhone中获得最接近的整数值

时间:2013-03-25 11:17:11

标签: iphone ios

我的iPhone应用程序中有一些数学相关的代码。我有一些方程式如下。

int tempVal = 56/50;
NSLog(@"%d", tempVal);

输出
   2013-03-25 16:29:36.749 TestApp[1467:c07] 1

实际上56/50 = 1.12和我的tempVal是整数,这就是我的结果为1的原因。

但我希望结果更接近更大的价值。我的意思是我希望2作为我的输出。我不能像tempVal那样以编程方式进行增量 tempVal+1tempVal = tempVal + 1或其他。

有可能吗?

6 个答案:

答案 0 :(得分:5)

这是这样做的方法(假设你希望tempVal保持int而不是float):

int tempVal = ceil((float)56/50);

NSLog(@"%d", tempVal);

答案 1 :(得分:2)

C相同的规则适用:56和50是整数,因此56/50是integer分界线。 Integer除法截断,所以56/50产生整数1.如果你正在取float个值,那么它可以正常工作。

float tempVal = 56.0/50.0;
    NSLog(@"%f", ceil(tempVal));

float tempVal =(float) 56/50;
    NSLog(@"%f", ceil(tempVal));

答案 2 :(得分:1)

你可以简单地使用%模数运算符来检查它们是否是答案中的一小部分,并根据该检查增加。

int tempVal = 56/50;
if ((56 % 50) > 0){
     tempVal ++;
 }

答案 3 :(得分:1)

怎么样?
int firstValue = ...;
int secondValue = ...;

int result = (firstValue + (secondValue - 1)) / (secondValue);

答案 4 :(得分:0)

int tempVal = (56 + (50 - 1)) / 50;

更一般地(对于正值):int result = (value + (divisor - 1)) / divisor;

非常基本的上升。应该在每个程序员的工具箱中。

答案 5 :(得分:-1)

只需使用ceil()

int tempVal =  ceil((float)56/50);