如何舍入值以获得正确的PHP结果

时间:2017-06-01 10:59:47

标签: php

我想用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%的整体价值?

3 个答案:

答案 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;
?>