[英]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.