Доброго времени суток, друзья!
Надеюсь Вы все живые и активные на форуме, давно не трогал инстантсмс, но по ряду причин решил вернуться и учить вторую ветку. Но пока с первой не домучаю, тяжело двигаться дальше.
Собственно, вопроса два:
1) в базу данных компонента универсальный каталог загнал цены товаров с 2 десятичными — типа 15000.20 копеек
При правке записи цена округляется и остается 15000 только. Куда копать, даже не знаю
2) Операции с ценой товара вообще кружат голову — {$item.price} выводит 15000, а вот {$item.price+$item.price/10} выводит 16.5
Откуда такая неразбериха?
Помогите пожалуйста, кто хорошо помнит старую добрую первую ветку и смарти
InstantCMS 1.X
Не могу вывести копейки цены в магазине
#1
7 марта 2018 в 01:05
#2
7 марта 2018 в 09:03
Евгений Фоменко, смотрите в моделях запросы в базу как бы там round не использовался.
#3
7 марта 2018 в 09:05
Там есть запрос и в нем используется round — если его просто удалить, то цена не сохраняется, а своих знаний корректно удалить у меня мало. Но если Вы тоже думаете, что причина round — покопаю этот момент внимательнее!
Спасибо большое
Спасибо большое
Сегодня в 12:40
#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
По крайней мере можно мелкие товары забивать
СЕйчас попробую разобраться со второй частью вопроса
$item['price'] = round($price, 2); (строка 953)
Хотя по логике тут ошибок нет — округление до 2 десятичных должно было оставлять 200,07
По крайней мере можно мелкие товары забивать
СЕйчас попробую разобраться со второй частью вопроса