Operadores numéricos

Os tipos int, longe real representam tipos numéricos. Os seguintes operadores podem ser utilizados entre pares destes tipos:

Operador Descrição Exemplo
+ Adicionar 3.14 + 3.14, ago(5m) + 5m
- Subtrair 0.23 - 0.22,
* Multiplicar 1s * 5, 2 * 2
/ Dividir 10m / 1s, 4 / 2
% Módulo 4 % 2
< Less 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Maior 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Igual a 1 == 1
!= Não é igual a 1 != 0
<= Menor ou Igual 4 <= 5
>= Maior ou Igual 5 >= 4
in É igual a um dos elementos veja aqui
!in Não é igual a nenhum dos elementos veja aqui

Nota

Para converter de um tipo numérico para outro, utilize to*() funções. Por exemplo, veja tolong() e toint().

Regras de tipo para operações aritméticas

O tipo de dados do resultado de uma operação aritmética é determinado pelos tipos de dados dos operandos. Se um dos operandos for do tipo real, o resultado será do tipo real. Se ambos os operandos forem de tipos inteiros (int ou long), o resultado será do tipo long.

Devido a estas regras, o resultado de operações de divisão que envolvem apenas números inteiros será truncado para um número inteiro, que pode nem sempre ser o que pretende. Para evitar a truncagem, converta pelo menos um dos valores inteiros para real utilizar o todoúvel() antes de efetuar a operação.

Os exemplos seguintes ilustram como os tipos de operando afetam o tipo de resultado nas operações de divisão.

Operação Resultado Description
1.0 / 2 0.5 Um dos operandos é do tipo real, pelo que o resultado é real.
1 / 2.0 0.5 Um dos operandos é do tipo real, pelo que o resultado é real.
1 / 2 0 Ambos os operandos são do tipo int, pelo que o resultado é int. A divisão de números inteiros ocorre e o decimal é truncado, resultando em 0 em vez de 0.5, como seria de esperar.
real(1) / 2 0.5 Para evitar a truncagem devido à divisão de números inteiros, um dos int operandos foi convertido pela primeira vez para real utilizar a real() função.

Comentário sobre o operador modulo

O modulo de dois números devolve sempre no Kusto um "pequeno número não negativo". Assim, o modulo de dois números, N % D, é tal que: 0 ≤ (N % D) < abs(D).

Por exemplo, a seguinte consulta:

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

Produz este resultado:

plusPlus minusPlus plusMinus minusMinus
2 10 2 10