Числовые операторы

Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Типы intи longreal представляют числовые типы. Следующие операторы можно использовать между парами этих типов:

Operator Description Example
+ Добавь 3.14 + 3.14, ago(5m) + 5m
- Subtract 0.23 - 0.22,
* Multiply 1s * 5, 2 * 2
/ Divide 10m / 1s, 4 / 2
% Модуль 4 % 2
< Меньше 1 < 10 10sec < 1h now() < datetime(2100-01-01)
> Больше 0.23 > 0.22 10min > 1sec now() > ago(1d)
== Равно 1 == 1
!= Не равно 1 != 0
<= Меньше или равно 4 <= 5
>= Больше или равно 5 >= 4
in Равно одному из элементов см. здесь
!in Не соответствует одному из элементов см. здесь

Замечание

Чтобы преобразовать из одного числового типа в другой, используйте to*() функции. Например, см tolong() . и toint().

Правила типов для арифметических операций

Тип данных результата арифметической операции определяется типами данных операндов. Если один из операндов имеет тип real, результат будет иметь тип real. Если оба операнда имеют целые типы (int или long), результат будет иметь тип long.

Из-за этих правил результат операций деления, которые включают только целые числа, будут усечены до целого числа, что может не всегда быть нужным. Чтобы избежать усечения, преобразуйте по крайней мере одно из целых значений в real использование todouble() перед выполнением операции.

В следующих примерах показано, как типы операндов влияют на тип результата в операциях деления.

Операция Result Description
1.0 / 2 0.5 Один из операндов имеет тип real, поэтому результатом является real.
1 / 2.0 0.5 Один из операндов имеет тип real, поэтому результатом является real.
1 / 2 0 Оба операнды имеют тип int, поэтому результатом является int. Целочисленное деление происходит, и десятичная дробь усечена, что приводит 0 к тому, что вместо 0.5него может потребоваться.
real(1) / 2 0.5 Чтобы избежать усечения из-за целочисленного деления, один из int операндов сначала был преобразован в real использование real() функции.

Комментарий к оператору модуля

Модуло двух чисел всегда возвращается в Kusto "небольшое неотрицательное число". Таким образом, модуло двух чисел , N % D, такое, что: 0 ≤ (N % D) < abs(D).

Например, следующий запрос:

print plusPlus = 14 % 12, minusPlus = -14 % 12, plusMinus = 14 % -12, minusMinus = -14 % -12

Создает следующий результат:

plusPlus минус Плюс plusMinus минусМинус
2 10 2 10