簡體   English   中英

設置價值限制,iPhone

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM