Číselné operátory

Typy int, longa real představují číselné typy. Mezi dvojicemi těchto typů lze použít následující operátory:

Operátor Popis Příklad
+ Přidání 3.14 + 3.14, ago(5m) + 5m
- Odčítání 0.23 - 0.22,
* Násobení 1s * 5, 2 * 2
/ Dělení 10m / 1s, 4 / 2
% Modulo 4 % 2
< Less 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Větší 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Je rovno 1 == 1
!= Nerovná se 1 != 0
<= Menší nebo rovno 4 <= 5
>= Větší nebo rovno 5 >= 4
in Rovná se jednomu z prvků další informace najdete tady.
!in Nerovná se žádnému z prvků. další informace najdete tady.

Poznámka

Pokud chcete převést jeden číselný typ na jiný, použijte to*() funkce. Podívejte se například na tolong() a toint().

Pravidla typů pro aritmetické operace

Datový typ výsledku aritmetické operace je určen datovými typy operandů. Pokud je jeden z operandů typu real, výsledek bude typu real. Pokud jsou oba operandy celočíselného typu (int nebo long), bude výsledek typu long.

Díky těmto pravidlům se výsledek operací dělení, které zahrnují pouze celá čísla, zkrátí na celé číslo, což nemusí být vždy to, co chcete. Chcete-li předejít zkrácení, převeďte před provedením operace alespoň jednu celočíselnou hodnotu na real použití todouble( ).

Následující příklady ukazují, jak typy operandů ovlivňují typ výsledku v operacích dělení.

Operace Výsledek Description
1.0 / 2 0.5 Jeden z operandů je typu real, takže výsledek je real.
1 / 2.0 0.5 Jeden z operandů je typu real, takže výsledek je real.
1 / 2 0 Oba operandy jsou typu int, takže výsledek je int. Dojde k celočíselnému dělení a desetinné číslo se zkrátí, což vede k hodnotě 0 namísto 0.5, jak by se dalo očekávat.
real(1) / 2 0.5 Aby nedošlo ke zkrácení kvůli dělení celého čísla, byl jeden z int operandů nejprve převeden na real funkci real() .

Komentář k operátoru modulo

Modulo dvou čísel vždy vrátí v Kusto "malé nezáporné číslo". Modulo dvou čísel, N % D, je tedy takový, že: 0 ≤ (N % D) < abs(D).

Například následující dotaz:

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

Výsledkem je tento výsledek:

plusPlus MinusPlus plusMinus minusMinus
2 10 2 10