Округление цены в Shop-Script

Тема в разделе "Shop-script", создана пользователем DSL-Group, 20 ноя 2007.

  1. DSL-Group

    DSL-Group Постоялец

    Регистр.:
    19 окт 2007
    Сообщения:
    99
    Симпатии:
    34
    Как в шоп скрипте сделать округление цены по мат. правилам? не нужны копейки или центы, нужно чтобы если вот скажем цена 1,290.30 была 1,290, а 3,805.59 была 3,806 соответственно.

    Знаю что ковыряться нужно в core_functions/functions.php, т.к. когда то просто убирал цифры после точки и точку вместе с ними, но сейчас нужно именно мат. округление, а написать не могу, может кто поможет? :ah:
     
    Docento нравится это.
  2. webjema

    webjema Создатель

    Регистр.:
    1 сен 2007
    Сообщения:
    46
    Симпатии:
    6
    http://ua2.php.net/manual/ru/function.number-format.php
     
  3. Untamo

    Untamo Писатель

    Регистр.:
    17 янв 2008
    Сообщения:
    7
    Симпатии:
    0
    У меня не работает округление в модуле оплаты. решается таким же путем?
     
  4. Dmytro_ua

    Dmytro_ua

    Регистр.:
    15 фев 2008
    Сообщения:
    239
    Симпатии:
    21
    А какие именно нули там нужно убрать, чтобы формат был 3,500, а не 3,500.67? А еще лучше (правильнее) 3.500 ?
     
  5. ndmitry

    ndmitry

    Регистр.:
    18 июн 2006
    Сообщения:
    980
    Симпатии:
    603
    На вскидку...
    Попробуй в ./core_functions/functions.php сократить код:
    Код:
     
    function _formatPrice($price)
    {
     $price = (string)$price;
     if ( !strstr($price,".") )
     
     $oldPrice = $price;  
     $res = "";
     $i = 0;
     for( $i=strlen($price)-1; $i>=0; $i-- )
     {
      if ( $price[$i] == "." )
       break;
      else
       $res = $price[$i].$res;
     }
     $res = ".".$res;
     $i--;
     $digitCounter = 0;
     for( ; $i>=0; $i-- )
     {
      $digitCounter++;
      $res = $price[$i].$res;
      if ( $digitCounter == 3 && $i != 0 )
      {
       $res = ",".$res;
       $digitCounter = 0;
      }
     }
     
     return $res;
    }
    
    до такого вида:
    Код:
     
    function _formatPrice($price)
    {
     $price = (string)$price;
     $res = number_format($price);
     
     return $res;
    }
    
     
    VenomHOLD, pudrakid, mooh и ещё 1-му нравится это.
  6. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.265
    Да. И еще. Замечу, что по умолчанию в скрипте код сокращения, имеется, когда в админке пишешь курс валют (пример: курс бакса - 26.666666666666666666), и превращается в 26.6667 - тем самым округляется.... Все присутствует, чтоб не заморачивались в поиске функции.
     
  7. Dmytro_ua

    Dmytro_ua

    Регистр.:
    15 фев 2008
    Сообщения:
    239
    Симпатии:
    21
    Странно, сокраитл код, как сказал ndmitry
    А отображение цены не изменилось: 13,987.92
     
  8. hyip-catalog.com

    hyip-catalog.com Прохожие

    http://dsl-group.com/ - DSL-Group ?
    Это ваш сайт?)
    Если да - то вы писали шоп моему конкуренту и очень мерзкому человеку )))

    Если нет - то дам фикс платежек на округление )
     
  9. Dr. Morg

    Dr. Morg Постоялец

    Регистр.:
    26 дек 2006
    Сообщения:
    55
    Симпатии:
    26
    Судя по аське,- он! =)))))))

    Думаю, что не только ему это будет интересно! ;)
    Хоть пофиксить округление и не проблема, но время - деньги, как известно и тратить его на уже сделанную кем-то работу не думаю, что многие готовы + ко всему многие вообще на ВЫ с PHP! ;)
     
  10. hyip-catalog.com

    hyip-catalog.com Прохожие

    Вот в чем плюс лицензии : задайм вопрос в Тех потдержку
    Получаем :



    Добавлено через 1 минуту
    Вариант номер два ) Для тех кто хочет сменить вырвать зубы через ... шаблон )