Умножение цены

Статус
В этой теме нельзя размещать новые ответы.

Uriys

Постоялец
Регистрация
21 Июн 2011
Сообщения
51
Реакции
0
Добрый день, на сайте есть цены и долорах хочу их все перевести в другую валюту путем умножение.

код вывода цены

<div class="price__output">
<?php echo $this->item->extraFields->TSena->value; ?>
<span style="font-size: 16px;">USD</span>
</div>

нужно эту цену умножить на 26,5 и вывести ее на тоже место.
при этом чтобы были только целые числа, то есть если после умножения получить число 23451,235 то чтобы выводилось только 23451

Заранее благодарен.
 
Добрый день, на сайте есть цены и долорах хочу их все перевести в другую валюту путем умножение.

код вывода цены

<div class="price__output">
<?php echo $this->item->extraFields->TSena->value; ?>
<span style="font-size: 16px;">USD</span>
</div>

нужно эту цену умножить на 26,5 и вывести ее на тоже место.
при этом чтобы были только целые числа, то есть если после умножения получить число 23451,235 то чтобы выводилось только 23451

Заранее благодарен.
Не пробовал сделать в лоб? Не уверен, что сработает, но мало ли :)
PHP:
<div class="price__output">
<?php echo round($this->item->extraFields->TSena->value*26.5, 0, PHP_ROUND_HALF_DOWN); ?>
<span style="font-size: 16px;">ГРН</span>
</div>
 
Советую создать какую-то константу для текущего курса, например:

define('USD_COURSE', 26,5);

Тогда в коде будет:
<?php echo round($this->item->extraFields->TSena->value * USD_COURSE); ?>

Или тебе нельзя редактировать код и нужно уже в переменной $this->item->extraFields->TSena->value иметь конечное число?
 
Советую создать какую-то константу для текущего курса, например:

define('USD_COURSE', 26,5);

Тогда в коде будет:
<?php echo round($this->item->extraFields->TSena->value * USD_COURSE); ?>

Или тебе нельзя редактировать код и нужно уже в переменной $this->item->extraFields->TSena->value иметь конечное число?

Можно редактировать, но почему то выводит не правильное число.

например: есть 360
а выводиться 9360

Я так понял что умножается на 26
 
Не пробовал сделать в лоб? Не уверен, что сработает, но мало ли :)
PHP:
<div class="price__output">
<?php echo round($this->item->extraFields->TSena->value*26.5, 0, PHP_ROUND_HALF_DOWN); ?>
<span style="font-size: 16px;">ГРН</span>
</div>
Учитывайте тот факт, что если не указаны необязательные параметры в функции round - число начиная с *.5 будет округляться вверх, а *.4 - округение будет идти вниз...
лучше указать параметры...
 
Все сработало, огромное спасибо )
Также как идея:
Можно сделать отдельную функцию для подсчета курса, например:

define('USD_COURSE', 26.5);

function preparePriceCourse($price, $inUSD = false)
{
if (!$inUSD) {
$price *= USD_COURSE;
}

return round($price);
}

тогда в коде будет
<?php echo preparePriceCourse($this->item->extraFields->TSena->value); ?>

плюс в том, что можешь в любом месте сайта использовать эту функцию, а если нужно будет сменить логику (например, изменить количество чисел после комы или автоматически вычислять, какую валюту показывать в зависимости от страны клиента), изменения нужно будет внести только в одном месте, в самой функции.
 
Именно это и пытаю сделать.

вставил функцию
define('USD_COURSE', 26.5);

function preparePriceCourse($price, $inUSD = false)
{
if (!$inUSD) {
$price *= USD_COURSE;
}
return round($price);
}
в index.php

а вывод происходит в item.php

но почему-не работает страница item поплыла
 
Как поплыла? Какие ошибки пишет?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху