Подтвердить что ты не робот

Рассчитать процентное увеличение между двумя десятичными числами

У меня есть число десятичных чисел, хранящихся в базе данных, и вам нужно рассчитать процентное увеличение (или уменьшение) между двумя числами с помощью 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%.

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

4b9b3361

Ответ 1

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

$count = number_format($count2, 2);

вместо

$count = number_format($count2, 0);

Сохраняя остальную часть кода тем же.

Ответ 2

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

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

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

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

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
}

Пример Codepad