Frage

Ich versuche, alle Preise mit 4 Dezimalstellen anzuzeigen (ich weiß ein bisschen seltsam, aber der Kunde hat dies verlangt). Ich habe überschriebene Mage/Core/Store überschrieben, die Genauigkeit von Currency.php in der Zend Lib und angepasst mage_directory_model_currency angepasst.

Im Backend werden alle meine Preise korrekt angezeigt, aber im Frontend erhalte ich einen auf 2 Dezimalstellen abgerundeten Preis, gefolgt von 00. Besonders der Tierpreis ist sehr entscheidend.

Da ich keine Kenntnisse in der Preisgestaltung habe, habe ich einige Tutorials im Magento Forum ohne Erfolg ausprobiert. Ich habe auch 2 Erweiterungen ohne Glück ausprobiert.

Irgendeine Hilfe?

War es hilfreich?

Lösung 3

Ich beschloss, es nicht zu tun, und riet dem Kunden, es nicht zu schieben, weil ich keine genauen Ergebnisse erzielen konnte. Wie in den Kommentaren erwähnt:

4 Dezimalpräzision ist in Magento von Natur aus ungenau.

Andere Tipps

Ich denke, Sie werden finden, was Sie in der brauchen format Methode im Inneren 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);
}

Ich musste die meiner Vorlage komplett umschreiben price.phtml Wie auch immer, und ich habe benutzt
<?php printf("$%.2f", $_finalPrice) ?> Sie könnten also das Gleiche tun, aber mit %.4f

Wenn Sie Vergleiche für Floats durchführen müssen, empfehle ich auch:
if( abs($_price1 - $_price2) < .0001 ) Anstatt von if($_price1 == $_price2)

Manchmal induziert die Flexibilität von PHP unerwartete Fehler, sodass häufig ein explizites Casting Ihres gewünschten Datentyps benötigt wird: $margin=(float)1-$margin; Ich bin dorthin gekommen, wo ich nicht einmal versuche, mehrere Mathematikoperationen in eine Codezeile zu stapeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top