[英]how to get nearest greater integer value in iPhone
我的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
。
有可能这样做吗?
这是这样做的方式(假设您希望tempVal
保持int而不是float):
int tempVal = ceil((float)56/50);
NSLog(@"%d", tempVal);
适用与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));
您可以简单地使用%
模数运算符来检查它们是否是答案中的分数,并基于该检查来增加。
int tempVal = 56/50;
if ((56 % 50) > 0){
tempVal ++;
}
关于什么
int firstValue = ...;
int secondValue = ...;
int result = (firstValue + (secondValue - 1)) / (secondValue);
int tempVal = (56 + (50 - 1)) / 50;
更一般地(对于正值): int result = (value + (divisor - 1)) / divisor;
非常基本的四舍五入。 应该在每个程序员的工具箱中。
只需使用ceil()
:
int tempVal = ceil((float)56/50);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.