Share via


Numerische Operatoren

Die Typen int, longund real stellen numerische Typen dar. Die folgenden Operatoren können zwischen Paaren dieser Typen verwendet werden:

Operator BESCHREIBUNG Beispiel
+ Add 3.14 + 3.14, ago(5m) + 5m
- Subtrahieren 0.23 - 0.22,
* Multiplizieren 1s * 5, 2 * 2
/ Dividieren 10m / 1s, 4 / 2
% Modulo 4 % 2
< Kleiner 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Größer 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Equals 1 == 1
!= Not Equals 1 != 0
<= Kleiner oder gleich 4 <= 5
>= Größer oder gleich 5 >= 4
in Entspricht einem der Elemente siehe hier
!in Entspricht keinem der Elemente siehe hier

Hinweis

Verwenden to*() Sie Funktionen, um von einem numerischen Typ in einen anderen zu konvertieren. Beispielsweise unter tolong() und toint().

Typregeln für arithmetische Operationen

Der Datentyp des Ergebnisses einer arithmetischen Operation wird durch die Datentypen der Operanden bestimmt. Wenn einer der Operanden vom Typ realist, ist das Ergebnis vom Typ real. Wenn beide Operanden ganzzahlige Typen (int oder long) aufweisen, ist das Ergebnis vom Typ long.

Aufgrund dieser Regeln wird das Ergebnis von Divisionsvorgängen, die nur ganze Zahlen umfassen, auf eine ganze Zahl abgeschnitten, was möglicherweise nicht immer ihren Wünschen entspricht. Um eine Abschneidung zu vermeiden, konvertieren Sie mindestens einen der ganzzahligen Werte in real die Verwendung von todouble(), bevor Sie den Vorgang ausführen.

Die folgenden Beispiele veranschaulichen, wie sich die Operandentypen auf den Ergebnistyp in Divisionsvorgängen auswirken.

Vorgang Ergebnis BESCHREIBUNG
1.0 / 2 0.5 Einer der Operanden ist vom Typ real, sodass das Ergebnis ist real.
1 / 2.0 0.5 Einer der Operanden ist vom Typ real, sodass das Ergebnis ist real.
1 / 2 0 Beide Operanden haben den Typ int, sodass das Ergebnis ist int. Die Ganzzahldivision tritt auf, und das Dezimalzeichen wird abgeschnitten, was anstelle von 0.5ergibt0, wie zu erwarten ist.
real(1) / 2 0.5 Um eine Abschneidung aufgrund einer ganzzahligen Division zu vermeiden, wurde einer der int Operanden zuerst mithilfe der real() -Funktion in konvertiertreal.

Kommentar zum Modulo-Operator

Das Modulo zweier Zahlen gibt in Kusto immer eine "kleine nicht negative Zahl" zurück. Daher ist das Modulo von zwei Zahlen, N % D, so, dass: 0 ≤ (N % D) abs(D). <

Beispielsweise wird die folgende Abfrage:

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

Erzeugt dieses Ergebnis:

plusPlus minusPlus plusMinus minusMinus
2 10 2 10