设置值的限制,iPhone

设置值的限制,iPhone,iphone,objective-c,max,Iphone,Objective C,Max,我有以下代码: float valueCalculated = (val1 / val2) * 100; 我想做的是将valueCalculated的最大值限制为100 我相信我可以使用某种if语句来实现这一点,但这意味着需要更多的代码行。编辑//情况并非如此,请参见下面的答案 谢谢 斯图你是说像这样的“更多的代码行”吗 if (valueCalculated > 100) { valueCalculated = 100; } 我不是iphone开发人员,但不是你要找的模块吗 floa

我有以下代码:

float valueCalculated = (val1 / val2) * 100;
我想做的是将valueCalculated的最大值限制为100

我相信我可以使用某种if语句来实现这一点,但这意味着需要更多的代码行。编辑//情况并非如此,请参见下面的答案

谢谢

斯图

你是说像这样的“更多的代码行”吗

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

我不是iphone开发人员,但不是你要找的模块吗

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

如果您只想通过“加权”将计算值限制在0到100之间,您可以将该值除以最大值,然后乘以100。这假定该值不是负值

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);
在哪里

希望有帮助,

如果我理解这个问题,那么

float valueCalculated = fminf((val1 / val2) * 100, 100);
…应该照你的要求去做

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

float valueCalculated = fmaxf(fminf((val1 / val2) * 100, 100), 0);
那么这个呢:

float valueCalculated = ((val1 / val2) * 100 < 100) ? (val1 / val2) * 100 : 100
浮点值计算=((val1/val2)*100<100)?(val1/val2)*100:100

val1和val2的范围是什么?抱歉,我忽略了提及valueCalculated将不会为负值。模运算似乎效果不错,但如果值为“101”,则“%101”将使其为0。我想他只是想把它限制在100。这太棒了,太简单了!我只是在学习,不管我怎么找,我都找不到这个!谢谢大家。这真是太棒了!:这正是我要找的!简单,聪明-但愿我自己也想到了。。。
float valueCalculated = ((val1 / val2) * 100 < 100) ? (val1 / val2) * 100 : 100
float valueCalculated = MIN((val1 / val2) * 100, 100);