我得到了一个四舍五入的问题,我有一个3个不同金额慈善机构的数据库。然后在前面,我有3个慈善机构根据分配给他们的金额显示百分比,总百分比总是需要加上100%。。目前,如果每个慈善机构有一个分配给它,它显示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)

非常感谢您的帮助。

最佳答案

不存在舍入问题,您只需舍入到整数,这意味着如果您有如下5个值:
12.25%
13.25%
20.25%
30.25%
34.00%
对它们使用round($x, 0)后,它们将四舍五入为以下值:
德意志北方银行
13个
20个
30个
34个
对这些四舍五入的值求和后得到99的值。
使用百分比时,最好至少四舍五入到小数点后两位,并且仅用于显示目的。您不应该舍入任何将用于进一步数学运算的值…

10-06 06:34