我试图通过以下方式获得包含增值税的商品的正常价格:
$unitPrice = round($item->getPrice(), 2);
它给了我.01
的差异。
我也试过没有四舍五入 - 仍然.01
差异。它会以16.06
的价格返回16.04
或16.05
。
知道我做错了吗?
答案 0 :(得分:0)
通常在Magento中,您使用内置的货币格式化方法而不是PHP的round
,例如:
$unitPrice = Mage::helper('core')->formatPrice($item->getPrice(), false); // $50.00
这将返回显示价格,如$50.00
。如果您只想要原始值,请改用:
$unitPrice = Mage::app()->getStore()->roundPrice($item->getPrice()); // 50.0
请注意,Mage_Core_Model_Store::roundPrice
基本上只是您已经做过的事情的包装,但它更安全,因为它已捆绑到Magento框架中。
另外 - 你没有提到你正在使用的Magento版本,但是如果它低于1.8,你可能会看到a delta rounding issue as noted here。它从1.8开始解决。