Soyuz.chat теперь может посчитать что угодно

Не так давно мы сделали возможность использовать в сценариях переменные, которые позволяли записывать в них ответы от посетителя и потом проводить простые математические операции: умножение, деление, вычитание и сложение одной переменной и какого-нибудь числа. Но быстро поняли, что одной переменной недостаточно — надо сделать так, чтобы за раз можно было оперировать многими переменками. Так появились формулы. С помощью формул вы можете посчитать всё, что вам придёт в голову — начиная от стоимости работы для клиента и заканчивая расчётом полёта на Марс.

Что конкретно могут формулы

Формулы — мощнейший инструмент для числовых переменных сценария, позволяющий вычислять значения на основании значений других переменных и математических функций.

Операторы и функции в формуле:

  • + — сложение. Например, ‘1 + 2’ = 3;
  • — — вычитание. Например, ‘8 — 2’ = 6;
  • * — умножение. Например, ’16 * 2′ = 32;
  • \ — деление. Например, ’32 / 2′ = 16;
  • % — деление по модулю (остаток от деления). Например, ’64 % 2′ = 0;
  • ^ — возведение в степень. Например, ‘2 ^ 3’ = 8;
  • () — группировка операций. Например, ‘(2 + 4) * 8’ = 48;
  • fix(x) — округление вещественного числа до целого. Например, ‘fix(3.14159)’ = 3;
  • format(x, точность) — округление вещественного числа до указанного количества знаков после запятой. Например, ‘format(3,14159, 2)’ = 3.14;
  • sqrt(x) — вычисление квадратного корня. Например, ‘sqrt(16)’ = 4;
  • max(x, y,…) — выбор максимального значения из списка. Например, ‘max(1, 2)’ = 2;
  • min(x, y,…) — выбор минимального значения из списка. Например, ‘min(1, 2)’ = 1;
  • median(x,y,…) — расчёт среднего значения из списка. Например, median(1, 2, 3) = 2;
  • x ? y : z — условия. Если x, то подставляем y, иначе подставляем z. Например, для расчёта процента скидки можно применить формулу ‘{{цена}} > 1000 ? 10 : 5’. Если цена больше 1000, то процент скидки 10, иначе 5.

Условия могут быть вложенными. ‘{{цена}} > 1000 ? 10 : ({{количество_товаров}} > 2 ? 5 : 0))’. Если цена больше 1000, то скидка равна 10%, иначе если количество товаров больше 2ух, то 5%, иначе 0.

В условиях можно использовать следующие операторы сравнения:

  • == — равно;
  • != — не равно;
  • > — больше;
  • < — меньше;
  • >= — больше или равно;
  • <= — меньше или равно.

Условия могут состоять из нескольких подусловий. Например, ‘{{переменная_1}} > 100 and {{переменная_1 <= 200}} ? 1 : 0’.

Логические операторы подусловий:

  • and — должны выполняться все подусловия.
  • or — должно быть выполнено хотя бы одно подусловие.

Также вы можете посчитать sin, cos, asin, csin, tan, ctan. Если интересно — пишите нам, мы расскажем как.

Попробуйте формулы — это бесплатно в течение 14 дней после регистрации. Надо только создать аккаунт.

Олег Сафонов

Соавтор статьи, сооснователь Soyuz.chat

Сергей Филимонов

Соавтор статьи, сооснователь Soyuz.chat

Хотите получать новые статьи на почту?

Мы отправляем письма 1–2 раза в месяц — только самое лучшее из нашего блога и школы маркетолога. Оставляйте свою почту и будьте в курсе главного в чат-бот-строении для сайта 😉

Подписаться