我有以下代码:
float valueCalculated = (val1 / val2) * 100;
我希望能够将valueCalculated的最大值限制为100。
我相信我可以使用某种if语句来做到这一点,但这意味着会有更多的代码行。编辑//事实并非如此,请参阅下面的答案。
谢谢,
斯图
答案 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>