Partager via


Opérateurs numériques

Les types int, longet real représentent les types numériques. Les opérateurs suivants peuvent être utilisés entre les 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
/ Divide 10m / 1s, 4 / 2
% Modulo 4 % 2
< Less 1 < 10, , 10sec < 1hnow() < datetime(2100-01-01)
> Supérieur 0.23 > 0.22, , 10min > 1secnow() > ago(1d)
== Égal à 1 == 1
!= Non égal à 1 != 0
<= Inférieur ou égal à 4 <= 5
>= Supérieur ou égal à 5 >= 4
in Égal à l’un des éléments voir ici
!in N’est égal à aucun des éléments voir ici

Remarque

Pour convertir d’un type numérique en 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 est 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 peut ne pas toujours être ce que vous voulez. Pour éviter la troncation, convertissez au moins une des valeurs entières en real utilisant le 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.

Operation Résultats Description
1.0 / 2 0.5 L’un des opérandes est de type real, donc le résultat est real.
1 / 2.0 0.5 L’un des opérandes est de type real, donc le résultat est real.
1 / 2 0 Les deux opérandes sont de type int, donc le résultat est int. La division entière se produit et la décimale est tronquée, ce qui se 0 produit au lieu de 0.5, comme on peut s’attendre.
real(1) / 2 0.5 Pour éviter la troncation en raison d’une division entière, l’un des int opérandes a d’abord été converti en real utilisant 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, N % D, est tel que : 0 ≤ (N % D) < abs(D).

Par exemple, dans la requête qui suit :

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

Produit ce résultat :

plusPlus moinsPlus plusMinus minusMinus
2 10 2 10