Вопрос

Я пытаюсь показать все цены с 4 десятичными десятичными (я знаю немного странно, но клиент потребовал это). Я переписан Mage/Core/Store, изменил точность валюты.

В бэкэнде все мои цены отображаются правильно, но на фронте я получаю цену, округленную до 2 десятичных десятиц, за которыми следует 00. Особенно уровня цена очень важна.

Поскольку у меня нет никаких знаний по ценам, я пробовал несколько учебных пособий на форуме Magento без успеха. Я также попробовал 2 расширения без удачи.

Любая помощь?

Это было полезно?

Решение 3

Я решил не делать этого и посоветовал клиенту воздерживаться от толкания его, потому что я не мог получить никаких точных результатов. Как упоминалось в комментариях:

4 Десятичная точность по своей природе неточна в 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; Я добрался до того места, где я даже не пытаюсь сложить несколько математических операций в одну строку кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top