Magento 1.9.1舍入问题......再次/仍然

时间:2015-07-06 11:06:31

标签: magento rounding magento-1.9

价格应该是50,90但是50,91 - 我认为问题已经解决了。但显然它不起作用。有什么提示可以解决这个问题吗?

base_subtotal 49,5800

base_tax_amount 8,13

shipping_amount 4,12

shipping_tax_amount 0,79

subtotal_incl_tax 59,00

total_due 50,91

enter image description here

1 个答案:

答案 0 :(得分:0)

我假设您正在计算增值税(Steuern)。

对于初学者来说,shipping_amount + shipping_tax_amount不会加起来:4,12 + 0,79 = 4,91。

我认为你犯了经典的错误,使用浮点数进行除法,加法和减法,然后对数字进行舍入以打印它们,但仍使用其他路径中的未包含数字。

我不知道你如何得到0.79作为shipping_tax_amount; 4.90除以1.19是4.117647 ......;圆形,给出4.12。除非您将4.1176747 ..截断为4.11,否则从4.90 =>中减去该值。 0.79。

有两种方法可以解决这个问题:

  • 使用整数计算,将所有金额视为美分
  • 每次乘法或除法
  • 时使用舍入

这两个解决方案基本相同,因为整数总是隐式舍入。此外,在计算金额的增值税部分时,不要直接使用除法,而是减去总额:

shipping = 4.90;
shipping_without_vat = round(shipping / 1.19, 2);
shipping_vat = shipping - shipping_without_vat;

然后使用shipping_without_vat和shipping_vat进行剩余的计算。