Operadores numéricos

Los tipos int, longy real representan tipos numéricos. Los operadores siguientes se pueden usar entre pares de estos tipos:

Operador Descripción Ejemplo
+ Agregar 3.14 + 3.14, ago(5m) + 5m
- Restar 0.23 - 0.22,
* Multiplicar 1s * 5, 2 * 2
/ Dividir 10m / 1s, 4 / 2
% Módulo 4 % 2
< Menor 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Mayor 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Equals 1 == 1
!= Not Equals 1 != 0
<= Menor o igual a 4 <= 5
>= Mayor o igual a 5 >= 4
in Igual a uno de los elementos ver aquí
!in No es igual a uno de los elementos ver aquí

Nota

Para convertir de un tipo numérico a otro, use to*() funciones . Por ejemplo, vea tolong() y toint().

Reglas de tipo para operaciones aritméticas

El tipo de datos del resultado de una operación aritmética viene determinado por los tipos de datos de los operandos. Si uno de los operandos es de tipo real, el resultado será de tipo real. Si ambos operandos son de tipos enteros (int o long), el resultado será de tipo long.

Debido a estas reglas, el resultado de las operaciones de división que solo implican enteros se truncará a un entero, que podría no ser siempre lo que desee. Para evitar el truncamiento, convierta al menos uno de los valores enteros en real mediante todouble() antes de realizar la operación.

En los ejemplos siguientes se muestra cómo afectan los tipos de operando al tipo de resultado en las operaciones de división.

Operación Resultado Descripción
1.0 / 2 0.5 Uno de los operandos es de tipo real, por lo que el resultado es real.
1 / 2.0 0.5 Uno de los operandos es de tipo real, por lo que el resultado es real.
1 / 2 0 Ambos operandos son de tipo int, por lo que el resultado es int. La división de enteros se produce y el decimal se trunca, lo que da lugar 0.5a 0 , como podría esperarse.
real(1) / 2 0.5 Para evitar el truncamiento debido a la división de enteros, primero se convirtió uno de los int operandos al real uso de la real() función .

Comentario sobre el operador de módulo

El módulo de dos números siempre devuelve en Kusto un "número pequeño no negativo". Por lo tanto, el módulo de dos números, N % D, es tal que: 0 ≤ (N % D) < abs(D).

Por ejemplo, la consulta siguiente:

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

Genera este resultado:

plusPlus minusPlus plusMinus minusMinus
2 10 2 10