Legosp Forum
Shop-Script "Legosp" => Общие вопросы => Тема начата: Drifter-B от Апреля 28, 2012, 11:12:12 am
-
Версия 5.0.2
Вопрос знатокам: Возможно ли убрать округление цен до целых чисел?
У меня присутствуют цены "1,8 руб", "1,4 руб", а при вводе они округляются до "1 руб".
Заранее спасибо.
-
Я через БД делаю 2 запросами
ALTER TABLE `SS_products` CHANGE `Price` `Price` BIGINT NULL DEFAULT NULL;
ALTER TABLE `SS_products` CHANGE `Price` `Price` FLOAT( 20 ) NULL DEFAULT NULL;
И отбрасываются все копейки
-
Неправильно понял вопрос. Извините....
-
Т.е. если изменить тип поля в базе, всё будет ok?
Если так, то какой тип ставить - real?
-
Если по всем магазину убрать тогда в файле cfg/functions.php
найти ф-ю
function show_price($price)
{
if (fract($price))
$price = number_format($price, 2, ',', ' ');
else $price = number_format($price, 0, '', ' ');
$csign_left = (defined("CONF_CURRENCY_ID_LEFT")) ? CONF_CURRENCY_ID_LEFT : "US $";
$csign_right = (defined("CONF_CURRENCY_ID_RIGHT")) ? CONF_CURRENCY_ID_RIGHT : "";
return $csign_left.$price.$csign_right;
}
и заменить на
function show_price($price)
{
$price = number_format($price, 2, ',', '');//если до десятых то 2->1
$csign_left = (defined("CONF_CURRENCY_ID_LEFT")) ? CONF_CURRENCY_ID_LEFT : "US $";
$csign_right = (defined("CONF_CURRENCY_ID_RIGHT")) ? CONF_CURRENCY_ID_RIGHT : "";
return $csign_left.$price.$csign_right;
}
-
Да, отображение цены это изменило, спасибо. Однако, это только пол дела. Цена округляется до целых сразу при вводе товара в базу. Как бы теперь и это побороть?
-
Где Вы это увидели? Я только что специально просмотрел catalog_products_edit.php - ничего похожего на округление - не увидел....
В структуре поля Price стоит Тип -> float, по этому в базу и пишется целое число!
Вроде целое - int.
а float - Числа с плавающей точкой
-
Всё, извиняюсь - клинический случай тупости. =)
У меня при вводе цены в виде "1,40" она почему-то сохраняется как 1, а если вводить "1.40" то нормально сохраняется как 1.4...
Извиняюсь за беспокойство.
-
Кстати, а почему при разных раскладках скрипт ведёт себя по-разному? Объясню:
Поле "цена" в админке, вод производится с нум-пада:
раскладка русская -> ввожу 1,4 -> отображается "1,4" -> в базу пишется 1
раскладка английская -> ввожу 1,4 -> отображается "1.4" -> в базу пишется 1,4
Это глюк такой или где-то стоит проверка? Возможно я чего-то не понимаю, конечно... =)
-
Да, предложенный твик помогает.
Спасибо.