воскресенье, 12 января 2014 г.

Расчёт стоимости квадратного метра для сайта по недвижимости

  Одним из интересных моментов в процессе работы над сайтом стал расчёт стоимости квадратного метра. Само по себе это лишь банальное деление одного числа на другое, в чём ничего сложного нет, но исходные данные и желаемый результат немного затрудняли задачу: исходная цена указывается в тысячах рублей, то есть без трёх последних нулей, стоимость квадратного метра нужно округлять до сотен и выводить в рублях. Простыми словами, деление 2300 на 57 должно давать в результате не дробное число 40.35087719, а целое число 40300.

  Необходимо было придумать такое решение поставленной задачи, при котором затраченные время и ресурсы сервера будут сведены к минимуму, так как рассчитывать нужно будет сразу для нескольких десятков объявлений. Первое, что приходит в голову при виде исходного и нужного чисел, это умножить полученный результат на 1000, а затем производить манипуляции с округлением. Сначала я так и сделал, но с округлением целого числа было трудновато, пока в голову пришла банальная идея - разделить всё на 100.
$mprice = 2300; $size = 57;
$mprice = $price / $size * 1000;
$mprice = ceil($mprice / 100) * 100;
echo $mprice; //получили 40300
  После умножения на тысячу делим результат на 100, тем самым убрав в правую от точки сторону ненужные цифры, затем округляем число до целого в большую сторону, а затем умножаем на 100. Звучит запутанно, но если сократить запись, всё становится предельно понятно.
echo ceil($price / $size * 10) * 100;
  Таким образом, даже если в случае деления стоимости объекта на общую плошадь мы получаем число меньше единицы, мы всё равно получим корректную стоимость квадратного метра. Вплоть до стоимости 100 рублей за квадратный метр.

Комментариев нет:

Отправить комментарий