我必须编写一个包含“含税价格”、“不含税价格”和“税”的文件。我必须使用的唯一数字是含税价格,输出需要保留到小数点后 2 位。将数据写入文件不是问题。
输出文件被发送到不受我控制的远程处理系统。
远程处理系统进行一些检查并将“不含税价格”添加到“税”中,并根据“含税价格”检查该值。
大多数值都可以正常工作,但是 35.37 或 31.17(加上一些其他值)的“含税价格”会导致问题,因为 number_format() 将“不含税价格”和“税”四舍五入,然后总计 = 35.58 或 31.18。
我怎样才能使用 number_format() 并每次都获得正确的结果并输出到小数点后 2 位,或者可以使用什么其他解决方案来实现所需的结果?下面的代码显示输出到屏幕以用于测试目的。
$taxRate = 20;
$priceIncTax = 35.37;
$priceExTax = $priceIncTax / (1 + ($taxRate / 100));
$priceTax = $priceIncTax - $priceExTax;
echo 'PRICE_EXCLUDING_TAX: ' . number_format($priceExTax,2).'<br>';
echo 'PRICE_TAX: ' . number_format($priceTax,2).'<br>';
echo 'PRICE_INCLUDING_TAX: ' . number_format($priceIncTax,2).'<br>';
echo 'PRICE_AFTER_TAX + PRICE_TAX: ' . (number_format($priceExTax,2) + number_format($priceTax,2)) .'<br>';