0

私は次の価格を持っています

$価格 = 7.358;

小数点以下2桁までフォーマットした後、次の結果が必要です

$result = 7.35 ですが、以下ではありません

$結果 = 7.36;

Magentoでこれを行うにはどうすればよいですか。

ありがとう

4

2 に答える 2

1

Mage_Directory_Model_Currencyを書き直す必要があります。このクラスにはformat()メソッドがあります。

元のバージョン:

public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
{
    return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);
}

formatPrecision の呼び出しに従うと、丸めが要約されZend_Currency、精度以外に影響を与えないことがわかります。そのため、すべてが発生する前に、format メソッドで切り捨てを行う必要があります。

更新版:

public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
{
    $price = bcdiv($price, 1, 2);
    return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);
}

コア ファイルは編集しないでください。この変更を行う手っ取り早い方法は、ファイルを からapp/code/core/Mage/Directory/Model/Currency.phpにコピーしてapp/code/local/Mage/Directory/Model/Currency.php、このコピーを変更することです。しかし、推奨される「Magento の方法」は、クラスを書き換えることです。その方法がわからない場合は、「Magento モデルの書き換え」を調べてください。

于 2013-03-14T13:31:56.590 に答える