• ベストアンサー

amazonの★評価の計算方法

アマゾンの評価のようなものを作ろうとしています。 複数の人から★5段階で評価入力してもらい、★の場合は1点、★★の場合は2点として計算します。 平均を出し、例えば平均が1以上2未満の場合は、★ 平均が4以上5未満だった場合は、★★★★として表示します。 この方法で計算した場合、評価する全員が★★★★★を付けた場合のみ、平均も★★★★★になります。 かなり辛口な気がしますが。 満点が出る確率が非常に低くなるような気がしますが、 普通は、このような場合どうやって計算するのでしょうか? 1 <= 平均 < 2 ★ 2 <= 平均 < 3 ★★ 3 <= 平均 < 4 ★★★ 4 <= 平均 < 5 ★★★★ 5 == 平均   ★★★★★ よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • urakids
  • ベストアンサー率77% (7/9)
回答No.1

上記の内容だけでプログラムするなら ############################################## # $hyoka 全員の評価点が加算されたものが代入されている #全評価点を人数で割って、小数点を切り捨て。 $ans = int($hyoka / $ninzu); #評価点分だけ星を付ける。 for (1 ... $ans) { $str .= "★"; } print qq($str\n); ############################################## といった形になると思いますよ。 まぁ小数点第1位を四捨五入して計算した方が 良いような気もしますけどね。

workpad30j
質問者

お礼

回答ありがとうございます。 やはり四捨五入のほうがよいですよね。 AmazonやYouTube見ても★5つが多いので、四捨五入のような気がしてきました。

関連するQ&A