Ответ 1
Просто напишите
$count = number_format($count2, 2);
вместо
$count = number_format($count2, 0);
Сохраняя остальную часть кода тем же.
У меня есть число десятичных чисел, хранящихся в базе данных, и вам нужно рассчитать процентное увеличение (или уменьшение) между двумя числами с помощью 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, ни математика недостаточно хороши, чтобы понять это.
Просто напишите
$count = number_format($count2, 2);
вместо
$count = number_format($count2, 0);
Сохраняя остальную часть кода тем же.
Давайте сделаем немного математики.
Если у вас есть 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
}