我想用php创建一个简单的投票程序,但我在整理投票结果方面遇到了问题。
我有来自每个现有主题的一些值,例如:
$TotalVote = 13;
$Value1 = 6;
$Value2 = 4;
$Value3 = 1;
$Value4 = 1;
$Value5 = 1;
Echo 'Value 1:'. $Result1 = round ($value1 / $totalVote * 100);
Echo '<br>';
Echo 'Value 2:'. $Result2 = round ($value2 / $totalVote * 100);
Echo '<br>';
Echo 'Value 3:'. $Result3 = round ($value3 / $totalVote * 100);
Echo '<br>';
Echo 'Value 4:'. $Result4 = round ($value4 / $totalVote * 100);
Echo '<br>';
Echo 'Value 5:'. $Result5 = round ($value5 / $totalVote * 100);
Echo '<br>';
Echo 'Total Value:'. $TotalResult = $result1 + $result2 + $result3 + $result4 + $result5;`
在我将所有舍入结果加起来后,我获得了101%的结果。我曾试图使用ceil,但我获得了102%的结果。
如果总结一切,我如何准确获得100%的整体价值?
答案 0 :(得分:1)
这就是你的四舍五入。你的逻辑毫无意义。调用总值不会使其成为总值,它只是舍入值的总和: - )
3名拥有价值唯一值的选民为每组提供33%的四舍五入。总计99%。 Ceil()会给出34 * 3 = 102。
答案 1 :(得分:1)
您可以尝试此代码
$values = [6,4,1,1,1];
$total_vote = array_sum($values);
$total_result = 0;
foreach ($values as $index => $value) {
$result = $value / $total_vote * 100;
$total_result += $result;
echo 'Value ' . ($index + 1) . ': ' . round($result) . '<br/>';
}
echo 'Total Value: ' . round($total_result);
此代码将生成以下输出
Value 1: 46
Value 2: 31
Value 3: 8
Value 4: 8
Value 5: 8
Total Value: 100
答案 2 :(得分:0)
我编辑这段代码为你辩护
<?php
$totalVote = 13;
$value1 = 6;
$value2 = 4;
$value3 = 1;
$value4 = 1;
$value5 = 1;
Echo 'Value 1:'. $Result1 = ($value1 / $totalVote * 100);
Echo '<br>';
Echo 'Value 2:'. $Result2 = ($value2 / $totalVote * 100);
Echo '<br>';
Echo 'Value 3:'. $Result3 = ($value3 / $totalVote * 100);
Echo '<br>';
Echo 'Value 4:'. $Result4 = ($value4 / $totalVote * 100);
Echo '<br>';
Echo 'Value 5:'. $Result5 = ($value5 / $totalVote * 100);
Echo '<br>';
Echo 'Total Value:'. $totalVote = $Result1 + $Result2 + $Result3 + $Result4 + $Result5;
?>