У меня есть цена, хранящаяся в таблице корзины покупок и пытающаяся найти способ настроить 1 цент, когда цена делится на 3 или любые другие нечетные числа.
$cost = '1'; $split = '3'; $check1 = $cost/$split; // .33 $check2 = $cost/$split; // .33 $check3 = $cost/$split; // this should give .34
Как я могу настроить разницу?
Что-то вроде
$cost = 1; $split = 3; $check1 = $cost/split; $total = intval($check1*100)*($split-1); $diff = $cost - $total/100;
Хорошо, если вы хотите иметь неограниченные $checks
и только иметь последний $check
включите остаток, вы можете сделать что-то вроде:
<?php $cost=1; $split=3; $q=round($cost/$split,2); $r=$cost-($split*$q); $firstchecks=$q; $lastcheck=$q+$r; ?>
Почему бы не округлить до второго десятичного знака:
function roundUp ($v,$d = 2 ) { $p=pow(10,$d); $c=ceil($p*$v); return ($c+ceil($p*$v-$c))/$p; } echo roundUp(1/3); // 0.34