我正在尝试在php中自动计算税款。这就是我到目前为止所做的:
background
我有一个显示“3116.88”的小计的输出是正确的,但显示该金额的税是“.32”,总计是“3.23”。谁能告诉我哪里出错?
答案 0 :(得分:1)
$invoice_subtotal = isset($invoice['invoice_subtotal']) ? invoiceNumFormat( $invoice['invoice_subtotal'] ): 0;
问题出在上面一行。
这里发生的是,你在设置小计值时使用了函数invoiceNumFormat
,当你传递3116.88
然后它返回3,116.88
这不是一个整数。
所以将行改为
$invoice_subtotal = isset($invoice['invoice_subtotal']) ? $invoice['invoice_subtotal'] : 0;
答案 1 :(得分:1)
首先格式化数字,然后计算$tax_amount
和$invoice_totalled
。但通过这种方式,您可以对字符串值执行操作,因此您可以获得不需要的值。
您必须使用浮点值执行所有数学运算,并仅在输出处格式化变量。
$invoice_subtotal = $invoice['invoice_subtotal'];
$tax_amount = $invoice_subtotal * $tax_rate / 100;
$invoice_totalled = $invoice_subtotal + $tax_amount;
echo '<span>'.invoiceNumFormat( $invoice_subtotal ).'</span>
<span>'.invoiceNumFormat( $tax_amount ).'</span>
<span>'.invoiceNumFormat( $invoice_totalled ).'</span>
';