Проблема с переменной цены $item.price и операции с ней

InstantCMS 1.X

Не могу вывести копейки цены в магазине

#1 7 марта 2018 в 01:05
Доброго времени суток, друзья!
Надеюсь Вы все живые и активные на форуме, давно не трогал инстантсмс, но по ряду причин решил вернуться и учить вторую ветку. Но пока с первой не домучаю, тяжело двигаться дальше.

Собственно, вопроса два:
1) в базу данных компонента универсальный каталог загнал цены товаров с 2 десятичными — типа 15000.20 копеек
При правке записи цена округляется и остается 15000 только. Куда копать, даже не знаю

2) Операции с ценой товара вообще кружат голову — {$item.price} выводит 15000, а вот {$item.price+$item.price/10} выводит 16.5
Откуда такая неразбериха?

Помогите пожалуйста, кто хорошо помнит старую добрую первую ветку и смарти
#2 7 марта 2018 в 09:03
Евгений Фоменко, смотрите в моделях запросы в базу как бы там round не использовался.
#3 7 марта 2018 в 09:05
Там есть запрос и в нем используется round — если его просто удалить, то цена не сохраняется, а своих знаний корректно удалить у меня мало. Но если Вы тоже думаете, что причина round — покопаю этот момент внимательнее!
Спасибо большое
#4 7 марта 2018 в 09:33
Евгений Фоменко, обычно round(тут переменная какая-то), вот и берите переменную без round и скобок.
Далее посмотрите чтоб в настройках таблиц базы данных не было округление, а то если запись в базе уже округлена, то счастья не будет
#5 7 марта 2018 в 09:37
Ок, спасибо — сейчас гляну в базу. Как в базе может стоять округление? Там просто стоит в структуре float и все.
Да и если товар редактировать — то в поле цена копейки ещё есть, а уже после сохранения исчезают. Очевидно это баг в системе, я большинство файлов поставил с дефолта.

Спасибо за помощь, буду копать
#6 7 марта 2018 в 10:29
Евгений Фоменко, например dev.mysql.com/doc/refman/5.5/en/fixed-point-types.html кол. после запятой и т.п.
#7 7 марта 2018 в 13:05
Вы правы — это таки округление
$item['price'] = round($price, 2); (строка 953)
Хотя по логике тут ошибок нет — округление до 2 десятичных должно было оставлять 200,07

По крайней мере можно мелкие товары забивать
СЕйчас попробую разобраться со второй частью вопроса
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.