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
- Subtract 0.23 - 0.22,
* Multiply 1s * 5, 2 * 2
/ Divide 10m / 1s, 4 / 2
% Módulo 4 % 2
< Menor que 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 a 4 <= 5
>= Maior 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 do tipo inteiro (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, que nem sempre pode ser o que você deseja. Para evitar truncamento, converta pelo menos um dos valores inteiros para real usar o 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, então o resultado é real.
1 / 2.0 0.5 Um dos operandos é do tipo real, então o resultado é real.
1 / 2 0 Ambos os operandos são do tipo int, então o resultado é int. A divisão inteira ocorre e o decimal é truncado, resultando em 0 vez de 0.5, como seria de esperar.
real(1) / 2 0.5 Para evitar o truncamento devido à divisão inteira, um dos int operandos foi primeiro convertido para real usar a real() função.

Comentário sobre o operador modulo

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