繁体   English   中英

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

[英]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+1tempVal = 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM