设置限价值,iPhone

时间:2009-11-23 23:05:05

标签: iphone objective-c max

我有以下代码:

float valueCalculated = (val1 / val2) * 100;

我希望能够将valueCalculated的最大值限制为100。

我相信我可以使用某种if语句来做到这一点,但这意味着会有更多的代码行。编辑//事实并非如此,请参阅下面的答案。

谢谢,

斯图

7 个答案:

答案 0 :(得分:5)

你的意思是“更多的代码行”?

if (valueCalculated > 100) { valueCalculated = 100; }

答案 1 :(得分:1)

float valueCalculated = MIN((val1 / val2) * 100, 100);

答案 2 :(得分:0)

float valueCalculated = (float temp = (val1 / val2) * 100) > 100 ? 100 : temp;

但是我想函数会更好,你可以使用函数或简单的宏:

#define MAX(m, toset) toset = (toset > m ? m : toset)

MAX(100, valueCalculated);

我想我更清楚你的问题:

valueCalculated = MAX(100, (val1 / val2) * 100);

,其中

#define MAX(max, val) (((val) > (max)) ? (max) : (val))

希望它有所帮助,

答案 3 :(得分:0)

如果我理解了这个问题......

float valueCalculated = fminf((val1 / val2) * 100, 100);

......应该按照你的要求做。

但是,您是否担心负值,即val1或val2是否为负值,是否要将valueCalculated的可能值限制为0-100?。如果是这样,那么你可能想要......

float valueCalculated = fmaxf(fminf((val1 / val2) * 100, 100), 0);

答案 4 :(得分:0)

这个怎么样:

float valueCalculated = ((val1 / val2) * 100 < 100) ? (val1 / val2) * 100 : 100

答案 5 :(得分:-1)

我不是iphone开发者,但不是你想要的模数吗?

float valueCalculated = ((val1 / val2) * 100) % 101;

答案 6 :(得分:-1)

如果您只是想通过“加权”将计算值限制为0到100,您可以将该值除以它可能的最大值,然后乘以100.这假设该值不是负数。 / p>