Opérateurs numériques

Les types int, longet real représentent les types numériques. Les opérateurs suivants peuvent être utilisés entre des paires de ces types :

Opérateur Description Exemple
+ Ajouter 3.14 + 3.14, ago(5m) + 5m
- Soustraire 0.23 - 0.22,
* Multiplier 1s * 5, 2 * 2
/ Diviser 10m / 1s, 4 / 2
% Modulo 4 % 2
< Less 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Greater 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Égal à 1 == 1
!= Non égal à 1 != 0
<= Less or Equal 4 <= 5
>= Greater or Equal 5 >= 4
in Égal à l’un des éléments voir ici
!in N’est égal à aucun des éléments voir ici

Notes

Pour convertir d’un type numérique à un autre, utilisez des to*() fonctions. Par exemple, consultez tolong() et toint().

Règles de type pour les opérations arithmétiques

Le type de données du résultat d’une opération arithmétique est déterminé par les types de données des opérandes. Si l’un des opérandes est de type real, le résultat sera de type real. Si les deux opérandes sont de types entiers (int ou long), le résultat sera de type long.

En raison de ces règles, le résultat des opérations de division qui impliquent uniquement des entiers sera tronqué en entier, ce qui n’est peut-être pas toujours ce que vous voulez. Pour éviter la troncation, convertissez au moins une des valeurs entières en real utilisant todouble() avant d’effectuer l’opération.

Les exemples suivants illustrent comment les types d’opérande affectent le type de résultat dans les opérations de division.

Opération Résultats Description
1.0 / 2 0.5 L’un des opérandes est de type real, le résultat est realdonc .
1 / 2.0 0.5 L’un des opérandes est de type real, le résultat est realdonc .
1 / 2 0 Les deux opérandes étant de type int, le résultat est int. La division entière se produit et la décimale est tronquée, ce qui entraîne 0 au lieu de , comme on peut s’y 0.5attendre.
real(1) / 2 0.5 Pour éviter la troncation due à la division entière, l’un int des opérandes a d’abord été converti à l’aide de real la real() fonction .

Commentaire sur l’opérateur modulo

Le modulo de deux nombres retourne toujours dans Kusto un « petit nombre non négatif ». Ainsi, le modulo de deux nombres, ND % , est tel que : 0 ≤ (N % D) < abs(D).

Par exemple, la requête suivante :

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

Produit ce résultat :

plusPlus minusPlus plusMinus minusMinus
2 10 2 10