0

最小/最大と実際の数値を使用したいヘルスバーがあります。
6 が最小で
8 が最大
で、実際の数は 7 を最初の数としてそれらの間で変動します。
((max_n + min_n) / act_n)*100 を試してみましたが、もちろんうまくいきません。
彼らが学校でそれを調べたとき、私はその日病気だったと思います(アイロール)

4

2 に答える 2

4

浮動小数点値が(6, 8)あり、値と最小値の間の距離を最大値との差として表現したい場合 -

var min = 6, 
    max = 8, 
    current = 7, 
    difference = max - min, 
    percent = (current - min) / difference;  // <-- is the value you're after
                                             // it is 50% between (6,8)
于 2015-02-10T20:46:27.257 に答える
1

何をしているのかよくわかりませんが、平均の計算方法が間違っていると思います。実際の値を可能な合計で割るべきではありませんか?

現在、ロジックは次のようになっています: (8 + 6 (14) / 実際の (7) )*100、これは 14/7 = 2 * 100 = 200 になります。

これら 2 つの引数、最小値と最大値、および実際の値を逆にする必要があると思います。

私だったら、そのようにする代わりに、実際に両方から最小額を差し引いて、2 つの差で割ります。6 と 8 が動的な場合、次のようになります。

( (act_n - min_n) / (max_n - min_n) )*100

または、値を使用すると、( (7.2 - 6) / (8 - 6)*100

(1.2 / 2)*100 = 60 なので、パーセンテージは 60% になります。

私は Javascript を使用していないので、スペース エラーは無視してください。言葉の厳しさはわかりません。

于 2015-02-10T20:38:06.377 に答える