发票表中有三个字段:
subtotal decimal(12,4)
tax_amount decimal(12,4)
total decimal(12,4)
我遇到了取整的问题。所以有一张发票,上面有以下数值。加法相加,但是当显示发票数据并为发票生成pdf时,显示的数据并不总是相加。
stored value displayed (rounded)
value
subtotal 165.1610 165.16
tax_amount 24.7742 24.77
total 189.9352 189.94
存储的值相加。
total
列是通过在PHP中添加subtotal
和tax_amount
值来计算的。舍入正确,但165.16+24.77=189.93,而不是189.94。我如何处理这些情况?情况并非总是如此。
最佳答案
将存储值四舍五入到最接近的一便士。使用PHP计算总计或小计时,将四舍五入的值相加。
如果要以某种方式显示舍入聚合,最好以完全相同的方式计算,以避免混淆。
可以将聚合项显示为未舍入,然后出于显示目的舍入最终和。从长远来看,如果你在数据库中存储的是零头硬币,这可能会发挥得更好。
另一种选择可能是对发票收取舍入费用,以解释差异,尽管这可能会让一些人感到困惑。
也就是说,从程序上讲,最好尽可能避免分文。
无论你选择做什么,都要始终如一!