Compartilhar via


Operadores numéricos

Os tipos int, longe real representam tipos numéricos. Os seguintes operadores podem ser usados entre pares desses 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
< Menor que 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Maior que 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== É igual a 1 == 1
!= Diferente de 1 != 0
<= Menor que ou Igual a 4 <= 5
>= Maior que ou Igual a 5 >= 4
in Equivale a um dos elementos veja aqui
!in Não equivale a qualquer um dos elementos veja aqui

Observação

Para converter de um tipo numérico para outro, use 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 essas regras, o resultado de operações de divisão que envolvem apenas inteiros será truncado para um inteiro, o que pode nem sempre ser o que você deseja. Para evitar truncamento, converta pelo menos um dos valores inteiros em real usando todouble() antes de executar a operação.

Os exemplos a seguir ilustram como os tipos de operando afetam o tipo de resultado em operações de divisão.

Operação Result Descrição
1.0 / 2 0.5 Um dos operandos é do tipo real, portanto, o resultado é real.
1 / 2.0 0.5 Um dos operandos é do tipo real, portanto, o resultado é real.
1 / 2 0 Ambos os operandos são do tipo int, portanto, o resultado é int. A divisão de inteiros ocorre e o decimal é truncado, resultando em 0 em em vez de 0.5, como se poderia esperar.
real(1) / 2 0.5 Para evitar truncamento devido à divisão de inteiros, um dos int operandos foi convertido pela primeira vez em real usando a real() função .

Comentário sobre o operador de módulo

O módulo de dois números sempre retorna em Kusto um "pequeno número não negativo". Portanto, o módulo 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