Проблема с отображением шестизначных сумм в 2.x

#1 15 сентября 2016 в 23:41
При покупке шаблона у TemplateInstant, с год назад, заметил проблему с отображением шестизначных сумм в числовом поле "цена" на демо доски объявлений. Движок сменил несколько версий, но проблема осталась.

Например:
Если ввести 120000 руб., все отображается корректно, если 1200000, то получаем 1.2e+06. Странно, что это никто не заметил ранее, по нынешним временам лимон — деньги не большие, объявлений с таким ценником достаточно много. Ерунда получается.
#2 16 сентября 2016 в 10:29
я зачечал, но программер с кем взаимодейтсвуем, как то эту проблему решил. Она действительно есть, подтверждаю
#3 16 сентября 2016 в 15:11

но программер с кем взаимодейтсвуем, как то эту проблему решил.

yury
Я использовал строковое поле, так как числовое из-за данного бага использовать невозможно. Но хотелось бы отремонтировать числовое.
#4 17 сентября 2016 в 10:27
Проблема, если и была, то осталась благодаря тому, что

Движок сменил несколько версий,

Pasechnik
Сейчас в двойке можно ввести цифру 1200000000 и она корректно отобразиться, проблема возникнет только если ввести цифру больше, чем 2147483647. И даже в этом случае будет корректно отображаться цифра 2147483647.
Смотрите в каком виде хранится у вас сумма в БД и сравните методы parse в файлах \system\fields\number.php вашего движка и установочной версии.
#5 17 сентября 2016 в 20:12

Сейчас в двойке можно ввести цифру 1200000000

Loadырь
У меня 1200000 — 1.2e+06, версия движка 2.5.1.

Смотрите в каком виде хранится у вас сумма в БД и сравните методы parse в файлах \system\fields\number.php вашего движка и установочной версии.

Loadырь
Проверю.

Сейчас проверил с дефолтным шаблоном. Вводим 1000000 получаем 1e+06.

Движок устанавливался с нуля. Поле "число", Фильтр по диапазону, Только целые числа.
#6 18 сентября 2016 в 10:08

Смотрите в каком виде хранится у вас сумма в БД

Loadырь
В таком же и хранится: 1.2e+06, 1e+06

сравните методы parse в файлах \system\fields\number.php вашего движка и установочной версии.

Loadырь
Код в файле \system\fields\number.php не был изменен, сравнил со свежескаченой версией 2.5.1
#7 18 сентября 2016 в 10:25

В таком же и хранится: 1.2e+06, 1e+06

Pasechnik
Структура поля в БД должна быть такой yadi.sk/d/LnE4zGVSvKUuN, у вас какая?
Поменяйте в БД 1.2e+06, 1e+06 на нужные значения и посмотрите, что получится.
#8 18 сентября 2016 в 12:53

Структура поля в БД должна быть такой yadi.sk/d/LnE4zGVSvKUuN, у вас какая?

Loadырь
Прямое попадание. Спасибо, Loadырь!
Тип поля price был float, сменил на int(11), теперь все отображается корректно.

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