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が得られます。

パーセンテージで作業する場合は、少なくとも小数点以下 2 桁まで四捨五入することをお勧めします (表示目的のみ)。さらなる数学演算に使用される値を丸めるべきではありません...

于 2013-06-11T14:23:06.533 に答える