Рассчитать процентное увеличение между двумя десятичными числами - PullRequest
11 голосов
/ 06 сентября 2011

У меня есть количество десятичных чисел, хранящихся в базе данных, и мне нужно рассчитать процентное увеличение (или уменьшение) между двумя числами с помощью PHP.

Примером двух чисел являются: 111.0516 и111.9052, что будет увеличение на 0,7628%

Я где-то нашел следующий код.К сожалению, кажется, что он не работает с десятичными числами и округляет их:

$num_amount = 111.0516;
$num_total = 111.9052;

function percent($num_amount, $num_total) {
$count1 = $num_amount / $num_total;
$count2 = $count1 * 100;
$count = number_format($count2, 0);
echo $count;
}

percent($num_amount, $num_total);

В идеале мне нужно рассчитать процентное отношение к двум десятичным знакам, давая ответ 0,77%.

Isэто возможно с PHP?Я в тупике.Ни мои навыки PHP, ни математика не достаточно хороши, чтобы понять это.

Ответы [ 2 ]

22 голосов
/ 06 сентября 2011

Давайте сделаем немного математики.

Если у вас есть 4 евро, а я даю 2 евро, у вас есть 6 евро, увеличение составляет 2/6.

Если у вас есть x евро, и я даю вам delta евро, у вас есть x + delta = y евро

Мы можем написать

percentage_increase := (delta / y) * 100
                    := ((y - x) / y) * 100
                    := (1 - (x / y)) * 100

Так ваша функция становится:

function percent($num_amount, $num_total) {
    echo number_format((1 - $num_amount / $num_total) * 100, 2); // yields 0.76
}

Пример кодовой панели

8 голосов
/ 06 сентября 2011

Просто напишите

$count = number_format($count2, 2);

вместо

$count = number_format($count2, 0);

, оставив остальной код таким же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...