ユーザーが投票に投票できるphpプログラムを作成しました。その後、投票結果はパーセンテージのみで表示されますが、プログラムでエラーに直面しています。
パーセンテージの計算に使用しているコードは次のとおりです
<?php echo round(($num_votes / $total_votes) * 100) ?>
サンプルの投票結果について話す場合、5 つのオプションがあると仮定します総
option A - 4 votes
option B - 2 votes
option C - 4 votes
option D - 1 votes
option E - 0 votes
投票数 =11
このシナリオでは、生成されるパーセンテージ
option A - 36%
option B - 18%
option C - 36%
option D - 9%
option E - 0%
結果は 私が望むのは、合計は常にあるべきであるということです
。99%
100%
100%
1712 次
4 に答える
5
丸められた数値で作業している場合、実際には...丸められた数値になる可能性があります。そして、これらの四捨五入された数値の合計は、通常の合計とは異なります。それを変えるためにできることはほとんどありません。あなたが主張するなら、あなたはしなければならないでしょう:
- 丸められた数値を計算する
- 合計を計算し、100% でない場合は、
- 丸められた数値をループして、不足しているパーセントを取得する必要があるものを決定します。
しかし、あなたはデータをいじっています。掃除していると思うかもしれませんが、めちゃくちゃにしています。
于 2013-04-23T09:16:47.610 に答える
1
この方法で ~100% につながります。'number_format' は便利です
$a = 4;
$b = 2;
$c = 4;
$d = 1;
$e = 0;
$total = $a + $b + $c + $d + $e;
$arr = array(
'a' => number_format(($a / $total) * 100, 3),
'b' => number_format(($b / $total) * 100, 3),
'c' => number_format(($c / $total) * 100, 3),
'd' => number_format(($d / $total) * 100, 3),
'e' => number_format(($e / $total) * 100, 3)
);
foreach ($arr as $answer => $percentage) {
echo $answer .': '. $percentage . '<br />';
}
// this will be 100.001 so we format is
echo 'total: '. number_format(array_sum($arr), 2);
于 2013-04-23T09:23:15.873 に答える
0
丸めの小数点以下の桁数を指定できます。例:ラウンド(数値、2);
于 2013-04-23T09:19:49.097 に答える
-2
それについてすぐにできることは何もありません。floor()
すべてを実行すると、1 ポイントを逃すことになり、1 ポイントceil()
を獲得することになります。
もしそうなら、あなたは floor()
すべてを計算することができます。array_sum()
100
min()
ceil()
于 2013-04-23T09:18:13.897 に答える