Jump to content


Photo
- - - - -

Округление цены в рублях


Best Answer SmetDenis , 13 November 2015 - 14:44

Если валюта интерфейса рубль, то перед тем как сделать произведение значение округляется в нижнюю сторону через floor()

 

ibxj_200x0.png


Это хак, другого решения я не знаю.

 

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

Go to the full post


  • This topic is locked This topic is locked
17 replies to this topic

#1 Max

Max
  • JBZoo User (rus)
  • User rate: 0
  • posts: 153
  • topics: 51

Posted 06 November 2015 - 08:21

Подскажите как округлить цену до рублей исходная цена в $, Поле "Знаков после запятой" - не влияет на вычисления цены.

Без округления курса валют ЦБ.


  • 0

Joomla: 3.4.8 JBZoo: 2.2.5 Pro rev3095 Zoo: 3.3.7 WidgetKit: 2.4.3


#2 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 09 November 2015 - 07:59

Используйте эти две опции
lxsy_200x0.png
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Max

Max
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 153
  • topics: 51

Posted 09 November 2015 - 08:11

Вычисления происходят следующим образом:

цена на товар в usd - в рублях по курсу цб с копейками - вывод на сайте без копеек (округление) - в корзине пересчет количества с учетом копеек

в последнем необходимо пересчет количества без учета копеек (указанным округлением)


  • 0

Joomla: 3.4.8 JBZoo: 2.2.5 Pro rev3095 Zoo: 3.3.7 WidgetKit: 2.4.3


#4 Max

Max
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 153
  • topics: 51

Posted 09 November 2015 - 08:20

корзина

Attached Thumbnails

  • Снимок экрана 2015-11-09 в 10.18.05.png

  • 0

Joomla: 3.4.8 JBZoo: 2.2.5 Pro rev3095 Zoo: 3.3.7 WidgetKit: 2.4.3


#5 Max

Max
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 153
  • topics: 51

Posted 09 November 2015 - 08:24

настройки валюты

Attached Thumbnails

  • Снимок экрана 2015-11-09 в 10.23.32.png

Edited by Max, 09 November 2015 - 08:24.

  • 0

Joomla: 3.4.8 JBZoo: 2.2.5 Pro rev3095 Zoo: 3.3.7 WidgetKit: 2.4.3


#6 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 10 November 2015 - 08:19

Режим округления влияет на расчеты, т.е система сначала округлит, а затем посчитает.
Если в вычислениях не нужно учитывать округление, то следует использовать "Знаков после запятой"

Скомбинировать это так чтобы работало одновременно боюсь не получится.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 Max

Max
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 153
  • topics: 51

Posted 10 November 2015 - 08:49

Выходит все наоборот для корзины - сначала посчитает с учетом количества потом округлит и это в корне неправильно, сумма больше на несколько рублей и вызывает путаницу, этаже проблема и в старых версиях. Вариант округление курса цб до целых не подходит. 

 

В формулу расчета стоимости корзины функцию округления нужно вставить в нужное место 


  • 0

Joomla: 3.4.8 JBZoo: 2.2.5 Pro rev3095 Zoo: 3.3.7 WidgetKit: 2.4.3


#8 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 12 November 2015 - 10:59

Округление у нас работает иначе чем вам кажется. 

 

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

k0pr_200x0.png

 

            $itemPrice = $this->val($item['total']);
 
            $cur = $itemPrice->cur();
            if ($cur == 'rub') {
                $val = $itemPrice->val();
                $val = round($val, 0);
                $itemPrice->set($val, $cur);
            }
            $itemPrice->multiply($item['quantity']);

  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#9 Max

Max
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 153
  • topics: 51

Posted 12 November 2015 - 11:20

в этом файле у меня нет такой функции

Joomla: 3.4.5 JBZoo: 2.2.0 Pro rev2935 Zoo: 3.3.7 WidgetKit: 2.4.3

Attached Files


Edited by Max, 12 November 2015 - 11:22.

  • 0

Joomla: 3.4.8 JBZoo: 2.2.5 Pro rev3095 Zoo: 3.3.7 WidgetKit: 2.4.3


#10 SmetDenis

SmetDenis
  • Administrators
  • User rate: 139.4
  • posts: 16232
  • topics: 200

Posted 12 November 2015 - 13:26

Извините, промахнулся.

Файл рядом -  jborder.php


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!