私は次の価格を持っています
$価格 = 7.358;
小数点以下2桁までフォーマットした後、次の結果が必要です
$result = 7.35 ですが、以下ではありません
$結果 = 7.36;
Magentoでこれを行うにはどうすればよいですか。
ありがとう
私は次の価格を持っています
$価格 = 7.358;
小数点以下2桁までフォーマットした後、次の結果が必要です
$result = 7.35 ですが、以下ではありません
$結果 = 7.36;
Magentoでこれを行うにはどうすればよいですか。
ありがとう
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 モデルの書き換え」を調べてください。