質問

私はすべての価格を4小数で表示しようとしています(私は少し奇妙なことを知っていますが、顧客はこれを要求しました)。 Mage/Core/Storeを上書きし、Zend libで通貨を変更し、mage_directory_model_currencyを調整しました。

バックエンドでは、すべての価格が正しく表示されますが、フロントエンドでは、2桁に続いて00に丸みを帯びた価格を受け取ります。特にティア価格は非常に重要です。

私は価格設定の知識がないので、Magento Forumでいくつかのチュートリアルを試しましたが、成功しませんでした。また、運がない2つの拡張機能も試しました。

何か助けがありますか?

役に立ちましたか?

解決 3

私はそれをしないことに決め、正確な結果が得られなかったので、顧客にプッシュを控えるようにアドバイスしました。コメントで述べたように:

4 10進精度は、Magentoで本質的に不正確です。

他のヒント

必要なものが見つかると思います format 内部の方法 app/code/core/Mage/Directory/Model/Currency.php.

/**
 * Format price to currency format
 *
 * @param   double $price
 * @param   bool $includeContainer
 * @return  string
 */
public function format($price, $options=array(), $includeContainer = true, $addBrackets = false)
{
    return $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets);
}

テンプレートを完全に書き直さなければなりませんでした price.phtml とにかく、私は使用しました
<?php printf("$%.2f", $_finalPrice) ?> それで、あなたは同じことができますが %.4f

また、フロートで比較を実行する必要がある場合は、次のことをお勧めします。
if( abs($_price1 - $_price2) < .0001 ) それ以外の if($_price1 == $_price2)

PHPのタイプの柔軟性が予期しないエラーを誘発する場合があるため、目的のデータタイプに明示的にキャストすることが必要です。 $margin=(float)1-$margin; 複数の数学操作を1つのコードに積み上げようとさえしない場所に到達しました。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top