[英]Set Limit For Value, iPhone
我有以下代码:
float valueCalculated = (val1 / val2) * 100;
我想要做的是将valueCalculated的最大值限制为100。
我相信我可以使用某种if语句来做到这一点,但这将意味着更多的代码行。 编辑//并非如此,请参见下面的答案。
谢谢,
斯图
您是说这样的“多行代码”?
if (valueCalculated > 100) { valueCalculated = 100; }
float valueCalculated = MIN((val1 / val2) * 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);
哪里
#define MAX(max, val) (((val) > (max)) ? (max) : (val))
希望能帮助到你,
乔
如果我理解这个问题,那么...
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
我不是iPhone开发人员,但不是要寻找所需的模数吗?
float valueCalculated = ((val1 / val2) * 100) % 101;
?
如果只想通过“加权”将计算的值限制为0到100,则可以将该值除以可能的最大值,然后乘以100。这假定该值不是负数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.