我得到了一个四舍五入的问题,我有一个包含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)
任何帮助大大赞赏..
答案 0 :(得分:1)
没有舍入问题,你只是舍入到一个整数,这意味着如果你有5个像这样的值:
对他们使用round($x, 0)
后,他们将四舍五入到这些值:
对这些舍入值求和后得到 99 的值。
最好在使用百分比时至少舍入到小数点后两位 - 并且仅用于显示目的。您不应该舍入任何将用于进一步数学运算的值......