3

我遇到了一个四舍五入的问题,我有一个包含 3 个不同金额的慈善机构的数据库。然后在前面我有 3 个慈善机构根据分配给他们的金额显示百分比,总百分比总是需要增加到 100%。 . 目前,如果每个慈善机构都有 1 个分配给它,它会在每个慈善机构上显示 33%,这等于 99%,我需要以一种始终等于 100% 的方式欺骗​​它。

这是PHP

$charity = $_POST['charity'];
$sql = "SELECT amount FROM charities";
$result = mysqli_query($con, $sql);

while($row = mysqli_fetch_array($result)) {
    $total += $row['amount'];
}

$sql_individual = "SELECT * FROM charities WHERE charity='$charity'";
$result_individual = mysqli_query($con, $sql_individual);

while($row = mysqli_fetch_array($result_individual)) {
    $charity = $row['amount'];
}

echo round($charity / $total * 100,0) . "%";

我为此找到了一个数学解决方案..但是..我的数学并不是那么好..但是..老实说,我不完全理解这一点:

c = 100 - (a + b) - e,g 34 = 100 - (33 + 33) 

非常感谢任何帮助..

4

1 回答 1

0

没有舍入问题,您只需四舍五入到整数,这意味着如果您有 5 个这样的值:

  1. 12,25%
  2. 13,25%
  3. 20,25%
  4. 30,25%
  5. 34,00%

在它们上使用后round($x, 0),它们将四舍五入为以下值:

  1. 12
  2. 13
  3. 20
  4. 30
  5. 34

将这些四舍五入的值相加后,您将得到99的值。

使用百分比时最好至少四舍五入到小数点后两位 - 并且仅用于显示目的。您不应四舍五入任何将用于进一步数学运算的值...

于 2013-06-11T14:23:06.533 回答