TierPrice Decimalsディスプレイ
質問
私はすべての価格を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つのコードに積み上げようとさえしない場所に到達しました。