【问题标题】:Magento 1.9.1 rounding issue...again/stillMagento 1.9.1 舍入问题...再次/仍然
【发布时间】:2015-07-06 11:06:30
【问题描述】:

价格应该是 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

【问题讨论】:

标签: magento rounding magento-1.9


【解决方案1】:

我假设您是从总额中计算增值税 (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 进行剩余的计算。

【讨论】:

  • 感谢您的回复。我说的是标准核心 magento 1.9.1。我没有做任何计算!将“四位数字”经典动作到位它可以工作 - 但我认为这从 1.8 开始就没有必要了
  • 啊,我忽略了你不是在自己编码。最明显的回复应该是“使用 Magento 提交错误报告”:) 显然他们犯了我写下的同样的经典错误......
猜你喜欢
  • 2015-05-21
  • 2012-11-11
  • 2014-08-21
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
相关资源
最近更新 更多