1

我的 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作为我的输出。我不能以编程方式在tempVallike
tempVal+1or tempVal = tempVal + 1or something中进行增量。

有没有可能做到这一点?

4

6 回答 6

5

这是执行此操作的方法(假设您想tempVal保持 int 而不是 float):

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

NSLog(@"%d", tempVal);
于 2013-03-25T11:23:44.900 回答
2

与 apply相同的规则C:56 和 50 是整数,因此 56/50 是一个除数integerInteger除法会截断,因此 56/50 会产生整数 1。如果您正在float取值,那么它可以正常工作。

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

或者

float tempVal =(float) 56/50;
    NSLog(@"%f", ceil(tempVal));
于 2013-03-25T11:23:58.310 回答
1

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

int tempVal = 56/50;
if ((56 % 50) > 0){
     tempVal ++;
 }
于 2013-03-25T11:20:58.007 回答
1

关于什么

int firstValue = ...;
int secondValue = ...;

int result = (firstValue + (secondValue - 1)) / (secondValue);
于 2013-03-25T11:26:14.770 回答
0

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

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

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

于 2013-03-25T11:25:38.677 回答
-1

只需使用ceil()

int tempVal =  ceil((float)56/50);
于 2013-03-25T11:24:57.320 回答