Округление цены до целых чисел

Тема в разделе "Разное", создана пользователем TeslaCo, 15 июл 2014.

  1. TeslaCo

    TeslaCo Member Пользователи

    Регистрация:
    4 мар 2014
    Сообщения:
    211
    Здравствуйте, каким макросом можно округлить числа? Например:
    5.3 до 5
    6.6 до 7
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Ссылки недоступны для гостей - макрос TOPRICE
     
  3. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    а +/- проценты к цене например, парсером никак вроде не сделать, только скриптом? (чтоб в процессе парсинга)

    Математических функций ведь нет?
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Ссылки недоступны для гостей - используйте макрос TOPRICE, он поддерживает и арифметические операции.
     
  5. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    а он использует интерполяцию?
    то есть 1,4=1 1,6=2 ?
     
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста, попробуйте, это же не сложно...
     
  7. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    Попробовал. На мой взгляд не хватает выбора стороны в которую округлять.
     
  8. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Округляет по правилам, что еще нужно...
     
  9. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    По правилам 3 варианта: в ближайшую (как сейчас), в большую, в меньшую.

    Допустим надо прибавить к цене 11,55р 15%, фактически 13,2825, после округления 13,28. Хоть и копейка, но всё равно в минус.

    На данный момент пока продолжу юзать скриптом. (хотелось бы внутренними ресурсами, но на данный момент их нет)
     
  10. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Я бы просто прибавил к результату копейку, раз уж на то пошло... Не вижу смысла в разработке разных методов округления.
     
  11. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    Так прибавлять надо не всегда.
    Да и «разработка» тут не сложная, простой выбор функции округления.
     
  12. TeslaCo

    TeslaCo Member Пользователи

    Регистрация:
    4 мар 2014
    Сообщения:
    211
    Здравствуйте, подскажите, можно ли как то задать например, если число меньше 100, то к нему нужно прибавить 7(число которое можно менять), или если число больше 1000, то к нему нужно прибавить 2.
    И можно ли как то из несколько чисел в разных границах выбирать наименьшее ?
    заранее благодарен.
     
    Последнее редактирование: 27 авг 2014
  13. TeslaCo

    TeslaCo Member Пользователи

    Регистрация:
    4 мар 2014
    Сообщения:
    211
    Спасибо) уже нашел
    но это ещё актуально
     
  14. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    только php скрипт
     
  15. TeslaCo

    TeslaCo Member Пользователи

    Регистрация:
    4 мар 2014
    Сообщения:
    211
    поделитесь если такой имеется, в php не силен.
     
  16. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    на вход числа 123,123,3454 (через запятую, без пробелов и прочей ерунды)
    Код:
    <PHP_SCRIPT=http://>data1=[DATAENCODE]123,234,256[/DATAENCODE]</PHP_SCRIPT>
    PHP:
    <?php 
    if (isset($_POST['data1'])) {$temp=$_POST['data1'];}else{$temp="---";}

    $extemp=explode(","$temp);

    asort($extemp);
    $i=0;
    foreach (
    $extemp as $key => $value) {
     
    $sec[$i]=$value;
     
    $i++;
    }
    echo 
    $sec[0];
    ?>
     
  17. Arless

    Arless Member Пользователи

    Регистрация:
    8 фев 2015
    Сообщения:
    108
    Не могу сообразить как сделать -35% и округлить до рубля в большую сторону? Делаю так <TOPRICE*0,65><CD_GRAN_3!>|[R0]</TOPRICE> , но округляет до рубля в меньшую сторону.
    Если 1250,35, нужно 1251, а не 1250.
    Или так нельзя сделать?
     
  18. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Программа использует банковское округление (не в большую сторону, а к ближайшему). Если вам так принципиально добавить 1 единицу, сделайте это так:
    <TOPRICE*0,65|+1><CD_GRAN_3!>|[R0]</TOPRICE>

    С уважением к вам, Сергей.
     
    Последнее редактирование: 10 ноя 2016
    Arless, kagorec и Kreol нравится это.

Поделиться этой страницей