我的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+1
或tempVal = tempVal + 1
或其他。
有可能吗?
答案 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);