不确定我在这里是不是很傻。可能是显而易见的事情,但当你几个小时一直盯着同一个问题时,它开始让你发疯。
我正在使用PHP进行一些计算,所有这些都非常直接。
我有一张名为sales的表,说:
total, costs
424.53, 125
853.91, 125
获取我需要的数据......
gross = total - cost
vat = gross - ( gross / 1.2 )
profit = gross - vat
我需要生成一个报告,因此对于销售数据库中的每一行,我需要循环并运行上述计算以获取我需要的数据。
如果我加上总和和成本之和,然后计算出上面的总额,增值税和利润,并将增值税和利润计算到2个小数点,那么这些值就是预期的。
我遇到的问题是我在每行循环并计算总额,增值税和利润。如果我不对每一行进行圆形展示并获利,而是围绕最终总计,它们会与我添加sum(total)
和sum(costs)
的值相匹配。
但是在我生成的报告中,如果我没有围绕增值税并获利,那么他们就不会显示两位小数,这是我需要的。
实际代码如下,非常确定它比代码更像是一个逻辑问题。
$sum = 0; // Test variable
foreach( .. as ... )
{
// Assigning $total and $cost
$gross = $total - $cost;
$data['profit'] = $gross;
// If I round this VAT so vat shows to two decimal points, $sum becomes off by some pence.
// If I don't round it but then round $sum after the loop, it matches the echo statement value which is the correct amount
$vat = $this->vat( $gross );
$data['vat'] = $vat;
$profit = $gross - $vat;
$data['net_profit'] = $profit;
$sum += $profit;
$array[] = $data;
}
echo "131547.82<br><br>";
echo $sum;
die;