Суммирование фунтов и унций

Feb 08, 2012 22:19


Запись опубликована Блог Озима. Please leave any comments there.

Ох уж эти фунты, русскому человеку очень сложно перестроиться на эту меру веса. Сегодня решил написать функцию по суммированию фунтов и унций.

Зачем? Затем, что в одном фунте 16 унций, а когда есть несколько позиций, которые надо сложить можно мозг сломать.

Что она делает? Корректно подсчитывает сумму унций и фунтов, если унций 16 и более - транформирует их в фунты.

function calcweight($pound,$ounce) { $p=explode(",",$pound); $o=explode(",",$ounce); for ($i=1; $i<=count($p) +1; $i++) { $poundfinal=$poundfinal+$p[$i-1]; } for ($i=1; $i<=count($o) +1; $i++) { $ouncefinal=$ouncefinal+$o[$i-1]; } $on=fmod($ouncefinal,16); // остаток фунтов из унций $pplus=floor($ouncefinal/16); // что надо будет приплюсовать в фунтам $ouncefinal=$on; // плюсуем остаток из унций к фунтам $po = $poundfinal+$pplus; $ou = $ouncefinal; return $po.';'.$ou; // выводим получившуюся сумму }
Чтобы функция нормально работала нужно получить фунты и унции в таком виде

$pound="1,4,23,6,7"; $ounce="12.2,3,3.4,4,2";
Для этого можно воспользоваться циклом наподобие

while ($res=mysql_fetch_array($sql)) { $pounds.=",".$res['pound']; $ounces.=",".$res['ounce']; }
Пример работы функции

echo calcweight("1.3,2.5,2.5,10","13.3,1.5,1,1"); //17.3;0.8
Обновлено: изменен разделитель на выходе, теперь это «;» - для подсчета дробных чисел.

Скрипты - полезные и не очень, Программирование

Previous post
Up