-1

次のコードがあります。

float valueCalculated = (val1 / val2) * 100;

私ができるようにしたいのは、valueCalculated の最大値を 100 に制限することです。

ある種の if ステートメントを使用してこれを行うことができると思いますが、これはさらに多くのコード行を意味します。編集 // これは当てはまりません。以下の回答を参照してください。

ありがとう、

ストゥ

4

7 に答える 7

5

このように「さらに多くのコード行」を意味しますか?

if (valueCalculated > 100) { valueCalculated = 100; }
于 2009-11-23T23:08:28.657 に答える
1
float valueCalculated = MIN((val1 / val2) * 100, 100);
于 2012-08-28T15:48:55.753 に答える
0

質問を理解したら...

float valueCalculated = fminf((val1 / val2) * 100, 100);

...あなたの求めていることをするべきです。

ただし、負の値について心配していますか。つまり、val1またはval2が負である可能性があり、valueCalculatedの可能な値を0〜100に制限しますか。もしそうなら、あなたは望むかもしれません...

float valueCalculated = fmaxf(fminf((val1 / val2) * 100, 100), 0);
于 2009-11-23T23:19:07.303 に答える
0

これはどうですか:

float valueCalculated = ((val1 / val2) * 100 < 100) ? (val1 / val2) * 100 : 100
于 2009-11-23T23:19:42.640 に答える
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))

お役に立てば幸いです、
ジョー

于 2009-11-23T23:13:13.660 に答える
-1

私は iphone 開発者ではありませんが、探しているのは modulo ではありませんか?

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

?

于 2009-11-23T23:09:25.877 に答える
-1

計算された値を「重み付け」して 0 から 100 に制限したい場合は、その値を可能な最大値で割り、100 を掛けます。これは、値が負でないことを前提としています。

于 2009-11-23T23:11:36.010 に答える