3

これは可能だと確信していますが、私の数学はそれほど素晴らしいものではありません。

私のページに最新の映画を表示していて、アプリケーションは5つ星の評価システムを使用していますが、Webサービスから受け取るデータは50%などのパーセンテージで届きます。

このパーセンテージを同等の星評価に変換する方法はありますか?この場合、50%= 2.5になり、2.5個の星を表示できますか?

私が50%を持っているときはかなり単純に見えますが、94%を得ると、私のかわいそうな小さなエンドウ豆を脳と混同します!助けてください。

4

3 に答える 3

14

0..100スケールをスケールに変換する場合は0..5、20で割ります。

半星の境界でそれ10が必要な場合は、代わりにそれを割ると、それが必要な半星の数になります。

ここでは、値が切り捨てられる(切り捨てられる)整数除算について話していることに注意してください。

また、99%のようなものが5つ星(4.5ではない)になるように、切り捨てではなく、除算中にもっとインテリジェントに丸めることを検討することもできます。これは、分割前に分割する量の半分を追加するだけで実行できます(Cの場合)。

int percent = 94;
int halfstars = (percent + 5) / 10;

これにより、0から100までの入力値に対して次の結果が得られます。

percent     halfstars
-------     ---------
  0-  4         0
  5- 14         1
 15- 24         2
 25- 34         3
 35- 44         4
 45- 54         5
 55- 64         6
 65- 74         7
 75- 84         8
 85- 94         9
 95-100        10
于 2012-11-04T00:31:17.233 に答える
3

数値のパーセンテージを見つけるための式はかなり単純です。

$percentInDecimalForm * $number

たとえば、94%の評価は次のようになります。

.94 * 5 = 4.7
于 2012-11-04T00:32:15.363 に答える
1

次のことを解決する必要があります。

100% ---------- 5
 94% ---------- x = (94 * 5) / 100 (=) x = 4.7

ここで、星のスケールの粒度(星を何回分割できるか)を知る必要があります。

0.5の星について言及したので、星の粒度は1 / 0.5 = 2であると想定します。したがって、次のように解きます。

round(4.7 * 2) / 2 (=) 9 / 2 (=) 4.5
于 2012-11-04T00:38:09.977 に答える