我有一个价格存储在购物车表中,并试图找到一种方法,当价格除以3或任何其他奇数时调整1美分。
$cost = '1';
$split = '3';
$check1 = $cost/$split; // .33
$check2 = $cost/$split; // .33
$check3 = $cost/$split; // this should give .34
如何调整差异?
答案 0 :(得分:2)
好的,如果你想拥有无限$checks
并且只有最后$check
包含余数,你可以这样做:
<?php
$cost=1;
$split=3;
$q=round($cost/$split,2);
$r=$cost-($split*$q);
$firstchecks=$q;
$lastcheck=$q+$r;
?>
答案 1 :(得分:1)
为什么不四舍五入到第二个小数:
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
答案 2 :(得分:1)
像
这样的东西$cost = 1;
$split = 3;
$check1 = $cost/split;
$total = intval($check1*100)*($split-1);
$diff = $cost - $total/100;