如何在 magento 中获取自定义价格格式(3 精度)

Posted

技术标签:

【中文标题】如何在 magento 中获取自定义价格格式(3 精度)【英文标题】:How to get custom price format (with 3 Precision) in magento 【发布时间】:2014-02-20 00:33:22 【问题描述】:

希望有人能提供帮助。

需要 number_format 来显示 3 个小数点......(实际上是 2 个)

<?php echo $this->helper('checkout')->formatPrice($_item->getCalculationPrice()/$_product->getAnzeigeMenge()) ?>

一直使用 number_format($_value, 3,",",".") 但不知道如何让它工作。

【问题讨论】:

【参考方案1】:

你可以用喜欢

尝试使用这个,

echo number_format($_value, '2', '.', ',')

echo number_format($_value, '3', '.', ',')

请检查

更多信息:http://php.net/manual/en/function.number-format.php

希望这对你有帮助。

【讨论】:

我知道这件事,但这不是我的问题。我如何显示 helper('checkout')->formatPrice($_item->getCalculationPrice()/$_product->getAnzeigeMenge()) ?> 3 位小数谢谢你 使用 getData('custom_attribute_name_here'), 2); ?> 数字格式功能,否则我必须在法师库文件中更改货币 我认为这会起作用,但在这个地方没有帮助。我在购物车/结帐页面上使用它来划分 formatPrice($_item->getCalculationPrice() 与我的自定义属性(请参阅我上面的代码)。我让这个划分功能起作用的唯一方法是使用这个方法。只有在这个我需要在所有其他我需要 2 上显示 3 个小数【参考方案2】:

打开 [magento]\app\code\core\Mage\Core\Model\Store.php

public function formatPrice($price, $includeContainer = true)
   
          if ($this->getCurrentCurrency()) 
          //sets the floating point precision to 3 points

          return $this->getCurrentCurrency()->format($price, array('precision'=>3),     $includeContainer);

           
         return $price;
   

注意:- 更改 array('precision'=>3) 而不是 array()

【讨论】:

【参考方案3】:
[magento]\app\code\core\Mage\Checkout\Helper\Data.php

添加以下功能

public function customformatPrice($price)

        return $this->getQuote()->getStore()->customformatPrice($price);

在 [magento]\app\code\core\Mage\Core\Model\Store.php 中添加以下函数

public function customformatPrice($price, $includeContainer = true)
   
          if ($this->getCurrentCurrency()) 
          //sets the floating point precision to 3 points

          return $this->getCurrentCurrency()->format($price, array('precision'=>3),     $includeContainer);

           
         return $price;
   

你可以像上面一样使用

//magento default call
echo Mage::helper('checkout')->formatPrice(3000.1231);//Rs3,000.12
echo "<br>";
//customized function call
echo Mage::helper('checkout')->customformatPrice(3000.12313);//Rs3,000.123

实际上你可以直接修改 [magento]\app\code\core\Mage\Core\Model\Store.php 中的 formatPrice() 但如果你想要两种格式,我们创建自定义函数

希望对你有帮助

【讨论】:

非常感谢你。就是这样;) 我非常不鼓励人们更改核心文件,这是一种不好的做法,然后会阻止您升级 Magento!

以上是关于如何在 magento 中获取自定义价格格式(3 精度)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Magento 1 中应用我的自定义目录价格规则条件?

Magento - 自定义选项不会更新可配置产品的价格

Magento 2 如何根据语言环境自定义货币符号和格式

如何在Magento(麦进斗)导入CSV文件中的产品价格的变化?

使用给定的价格和数量更改小计(自定义属性)

Magento如何从一家商店的价格中去除小数