Числовые операторы
Типы int
и long
real
представляют числовые типы.
Следующие операторы можно использовать между парами этих типов:
Operator | Description | Пример |
---|---|---|
+ |
Добавить | 3.14 + 3.14 , ago(5m) + 5m |
- |
Вычитание | 0.23 - 0.22 , |
* |
Умножение | 1s * 5 , 2 * 2 |
/ |
Разделить | 10m / 1s , 4 / 2 |
% |
Остаток от деления | 4 % 2 |
< |
Less | 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() перед выполнением операции.
В следующих примерах показано, как типы операндов влияют на тип результата в операциях деления.
Операция | Результат | 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 |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по