Numerische Operatoren
Die Typen int
, long
und 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 real
ist, 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.5 ergibt0 , 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 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für