• Страница 1 из 1
  • 1
Модератор форума: Yuri_G  
Сообщество uCoz » Вебмастеру » Общие вопросы от вебмастеров » Нужна помощь по формуле if... (арифметическое действие)
Нужна помощь по формуле if...
Canon_L
Сообщений: 95
Репутация: 18

Сообщение # 1 | 21:51:14
Здравствуйте!
Имеется вот такая формула: <? $OTHER1$/2.00 ?>
где $OTHER1$ - цена в белорусских рублях
2.00 - текущий курс доллара

Когда текущий курс целое число, то проблем никаких нет. Когда предположим 1.97, то результат деления получаю: 10.1522842639594 - 13 цифр дробных. Можно ли как-то с помощью substr и strpos обрезать результат в формуле до двух знаков дробных после точки?

Т.е. что бы при курсе 2.01 <? $OTHER1$/2.01 ?> результат получать не

9.95024875621891 $ ============> а 9.95 $
mrx
Сообщений: 309
Репутация: 51

Сообщение # 2 | 23:56:42
<?substr(($OTHER1$/2.00),0,(strpos(($OTHER1$/2.00),('.'))+3))?>
Canon_L
Сообщений: 95
Репутация: 18

Сообщение # 3 | 00:05:22
mrx, спасибо за желание помочь. Но при таком раскладе не происходит арифметическое действие, т.е. $OTHER1$ не делится на курс, соответственно обрезать нечего.
mrx
Сообщений: 309
Репутация: 51

Сообщение # 4 | 02:40:37
Странно...

<?$GROUP_ID$ * 200?> - работает

<?substr(($GROUP_ID$ * 200),0,1)?> - не работает

Может быть я ошибаюсь, но раньше такие формулы с системными переменными выполнялись без проблем.

P.S. Кстати, если <?$GROUP_ID$ * 200?> засунуть в информер, а потом вывести вот так:

<?substr($MYINF_1$,0,1)?>

То все выполняется корректно. unsure

P.P.S. Таким образом, вашу формулу можно построить так:

1. В информере $MYINF_1$ выполняем функцию деления <?цена/курс?>

2. В место, где выводится окончательный результат, вставляем это:

<?ifnot(strpos($MYINF_1$),'.')='-1'?>
$MYINF_1$
<?else?>
<?substr($MYINF_1$,0,(strpos($MYINF_1$,'.')+3))?>
<?endif?>

Сперва выполняется проверка есть ли в результате деления точка. Если нет, то получаем "-1" и просто выводим результат информера $MYINF_1$ без обрезания. А если точка есть, то обрезаем до двух знаков после нее.

Рабочий пример: http://umatrix.ucoz.com/index/arifmetika/0-7

Но беда в том, что в информер нельзя засунуть содержимое поля $OTHER1$ на странице материала, поэтому... killed ничего не выйдет. Внутри strpos/substr невозможно выполнять арифметические действия.
Сообщение отредактировал mrx - Вторник, 22 Май 2018, 02:42:37
Canon_L
Сообщений: 95
Репутация: 18

Сообщение # 5 | 03:37:09
mrx, в информер не вариант, хотел поюзать это условие в виде материалов и на странице материала доски объявлений с ее кастрированным функционалом.
leonoff(on)
Сообщений: 296
Репутация: 57

Сообщение # 6 | 10:36:22
Canon_L, substr ждет на входе строку, поэтому не работает. Как вариант безобидный скриптик:
Код
<p>Курс: <script>document.write(Math.ceil((<? $OTHER1$ / 2.0 ?>)*100)/100)</script>$</p>
Округление должно происходить до сотых в большую сторону.

Муж рассказал жене, что у него есть любовница. Причина смерти: коронавирус.
Сообщение отредактировал leonoff(on) - Вторник, 22 Май 2018, 17:45:39
Canon_L
Сообщений: 95
Репутация: 18

Сообщение # 7 | 17:37:24
Александр, смотрите какая история. В HTML попадает:

Код
<div class="board-item price-usd" id="usd">
<!--- НАЧАЛО КОНВЕРСИИ --->
<script>document.write(Math.ceil((301.507537688442)*100)/100</script>
<!--- КОНЕЦ КОНВЕРСИИ --->
</div>


Но на самой странице пусто, т.е. результат не показывается.
leonoff(on)
Сообщений: 296
Репутация: 57

Сообщение # 8 | 17:42:34
Canon_L, скобки нет в конце

Код
document.write(Math.ceil((301.507537688442)*100)/100)

Муж рассказал жене, что у него есть любовница. Причина смерти: коронавирус.
Canon_L
Сообщений: 95
Репутация: 18

Сообщение # 9 | 17:59:00
Александр, спасибо огромное за помощь! Все замечательно работает.

***

Вопрос исчерпан, можно закрывать.
Сообщение отредактировал Canon_L - Вторник, 22 Май 2018, 18:08:25
Сообщество uCoz » Вебмастеру » Общие вопросы от вебмастеров » Нужна помощь по формуле if... (арифметическое действие)
  • Страница 1 из 1
  • 1
Поиск: