Получить целые числа из процентов - PullRequest
0 голосов
/ 09 октября 2011

Допустим, у меня бюджет 40 долларов, и я хочу потратить определенный процент на несколько вещей.

$budget = 40;

$food = 60 // 20%
$gas = 26 // 26%
$movie = 14 // 14%

percent($food, $budget) // $24
percent($gas, $budget) // $10.4
percent($movie, $budget) // $5.6

Проблема в том, что я не хочу получать такие десятичные дроби, я хотел бы получать целые числа, даже если мне нужно уменьшить некоторые и исправить другие.

Общий бюджет не должен быть меньше или больше 40.

Как это сделать, не заканчивая большим старым кодом?

Ответы [ 2 ]

1 голос
/ 09 октября 2011

Это может сработать.Я не проверял это.

function percentCalc ($percent, $budget) [
   $pecentage * .01 = $decimal;
   $unrounded = $decimal * $budget;
   $final = round($unrounded);

   return $final;
 }
0 голосов
/ 09 октября 2011

Вот самый простой и честный способ сделать это:

  1. Округли все.
  2. Сложить округленные значения.
  3. Сравните с общим бюджетом, чтобы увидеть, сколько у вас осталось.
  4. Распределите то, что вы оставили, предметам, которые потеряли больше всего в округлении.

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

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