Как рассчитать проценты? - PullRequest
17 голосов
/ 05 декабря 2008

Я хочу посчитать, что такое $ x процент от общей суммы $. $ x может составлять 15%, 20% и т. д., а $ total может составлять 1000, 2000 и т. д. Поэтому я бы хотел, например, 15% от 1000.

Какова формула для расчета этого? (Я знаю, что это не точно вопрос кодирования, но я кодирую эту функцию и мне нужна помощь!

Ответы [ 7 ]

24 голосов
/ 05 декабря 2008
(actual / available) * 100 = percent // start

actual / available = percent / 100

actual = (percent / 100) * available // finish

например. 15% от 1000

actual = (15 / 100) * 1000
actual = 0.15 * 1000
actual = 150
3 голосов
/ 05 декабря 2008

формулы:

percentage = partialAmount / totalAmount
totalAmount = partialAmount / percentage
partialAmount = percentage * totalAmount

обратите внимание, что процент обычно является десятичным числом от 0 до 1

3 голосов
/ 05 декабря 2008

Учитывая X и Y, X% Y - X * Y / 100. Если используется целочисленная арифметика, убедитесь, что вы делаете (X * Y) / 100, а не (X / 100) * Y.

15% от 1000 составляет (15 * 1000) / 100, что составляет 150.

1 голос
/ 05 декабря 2008

Не знаю, упускаю ли я что-то здесь, но если вам нужен процент числа, просто умножьте его на процент и разделите на 100:

NewTotal = Всего * Процент / 100

IE:

NewTotal = 1000 * 15/100

или

NewTotal = 1000 * 0,15

0 голосов
/ 14 марта 2015

Вы ищете процент в значении или процент от значения?

Разница в том, что процентная доля основана на исходном значении, а процентная доля в процентах предполагает, что общая сумма уже включает в себя ваш процент, а база соответственно ниже.

Например, процентная доля расчета будет такой: «Если я вложу 1000 долларов США под 15%, сколько я получу через год?» Ответ, конечно, в расчете на процент в 150 долларов будет: «У меня были 15% -ные инвестиции в год, а теперь они стоят 1000 долларов. С чего я начал?» Ответ на этот вопрос НЕ 850 долларов, как можно наивно ожидать.

Поскольку вы упомянули общее количество, я подозреваю, что вы ищете процент в общем. Чтобы получить формулу для этого, вы должны работать в обратном направлении от формулы DaEagle:

Его версия была:

NewValue = 1000 * 15%

Итого будет:

Итого = 1000 долларов * (1 + 0,15)

Для расчета в процентах вы знаете итоговое значение, но не знаете начальное значение:

$ 1000 = начальное значение * (1 + 0,15)

Решение для StartValue:

StartValue = 1000 $ / (1 + 0,15)

StartValue = $ 869,57

0 голосов
/ 11 февраля 2015

Вы должны рассмотреть случай, когда totalAmount равен нулю, иначе вы рискуете ошибкой во время выполнения (деление на ноль). А также, возможно, вы захотите округлить ответ.

#A Perl one liner to to do this is:
$pc=$tot>0 ? sprintf('%.0f', $x/$tot*100 ).'%' : 'N/A';
0 голосов
/ 16 сентября 2013
$x = 15;
$total = 1000;
$answer = $total * $x / 100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...