Numerieke operators

De typen int, longen real vertegenwoordigen numerieke typen. De volgende operators kunnen worden gebruikt tussen paren van deze typen:

Operator Beschrijving Voorbeeld
+ Toevoegen 3.14 + 3.14, ago(5m) + 5m
- Aftrekken 0.23 - 0.22,
* Vermenigvuldigen 1s * 5, 2 * 2
/ Delen 10m / 1s, 4 / 2
% Modulo 4 % 2
< Less 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Groter 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Is gelijk aan 1 == 1
!= Is niet gelijk aan 1 != 0
<= Kleiner of gelijk aan 4 <= 5
>= Groter of gelijk aan 5 >= 4
in Is gelijk aan een van de elementen kijk hier
!in Is niet gelijk aan een van de elementen kijk hier

Notitie

Als u van het ene numerieke type naar het andere wilt converteren, gebruikt u to*() functies. Zie bijvoorbeeld tolong() en toint().

Typeregels voor rekenkundige bewerkingen

Het gegevenstype van het resultaat van een rekenkundige bewerking wordt bepaald door de gegevenstypen van de operanden. Als een van de operanden van het type realis, is het resultaat van het type real. Als beide operanden van het type geheel getal (int of long) zijn, is het resultaat van het type long.

Als gevolg van deze regels wordt het resultaat van delingsbewerkingen waarbij alleen gehele getallen zijn betrokken, afgekapt tot een geheel getal. Dit is mogelijk niet altijd wat u wilt. Om afkapping te voorkomen, converteert u ten minste één van de waarden voor gehele getallen naar real de todouble() voordat u de bewerking uitvoert.

In de volgende voorbeelden ziet u hoe de operandtypen van invloed zijn op het resultaattype in delingsbewerkingen.

Bewerking Resultaat Beschrijving
1.0 / 2 0.5 Een van de operanden is van het type real, dus het resultaat is real.
1 / 2.0 0.5 Een van de operanden is van het type real, dus het resultaat is real.
1 / 2 0 Beide operanden zijn van het type int, dus het resultaat is int. Deling van gehele getallen vindt plaats en het decimaal getal wordt afgekapt, wat resulteert 0 in in plaats van 0.5, zoals men zou verwachten.
real(1) / 2 0.5 Om afkapping vanwege deling van gehele getallen te voorkomen, is een van de int operanden eerst geconverteerd naar real de real() functie .

Opmerking over de modulo-operator

De modulo van twee getallen retourneert in Kusto altijd een 'klein niet-negatief getal'. De modulo van twee getallen, N % D, is dus zodanig dat: 0 ≤ (N % D) < abs(D).

Bijvoorbeeld de volgende query:

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

Produceert dit resultaat:

plusPlus minusPlus plusMinus minusMinus
2 10 2 10