Numeriska operatorer
Typerna int
, long
och real
representerar numeriska typer.
Följande operatorer kan användas mellan par av dessa typer:
Operator | Beskrivning | Exempel |
---|---|---|
+ |
Lägg till | 3.14 + 3.14 , ago(5m) + 5m |
- |
Subtrahera | 0.23 - 0.22 , |
* |
Multiplicera | 1s * 5 , 2 * 2 |
/ |
Dividera | 10m / 1s , 4 / 2 |
% |
Modulo | 4 % 2 |
< |
Less | 1 < 10 , 10sec < 1h , now() < datetime(2100-01-01) |
> |
Större | 0.23 > 0.22 , 10min > 1sec , now() > ago(1d) |
== |
Lika med | 1 == 1 |
!= |
Inte lika med | 1 != 0 |
<= |
Mindre eller lika med | 4 <= 5 |
>= |
Större eller lika med | 5 >= 4 |
in |
Lika med ett av elementen | se här |
!in |
Inte lika med något av elementen | se här |
Anteckning
Om du vill konvertera från en numerisk typ till en annan använder du to*()
funktioner. Se till exempel tolong()
och toint()
.
Typregler för aritmetiska åtgärder
Datatypen för resultatet av en aritmetikåtgärd bestäms av operandernas datatyper. Om någon av operanderna är av typen real
blir resultatet av typen real
. Om båda operanderna har heltalstyper (int
eller long
) blir resultatet av typen long
.
På grund av dessa regler trunkeras resultatet av divisionsåtgärder som endast omfattar heltal till ett heltal, vilket kanske inte alltid är det du vill ha. För att undvika trunkering konverterar du minst ett av heltalsvärdena till real
att använda todouble() innan du utför åtgärden.
Följande exempel illustrerar hur operandtyperna påverkar resultattypen i divisionsåtgärder.
Åtgärd | Resultat | Description |
---|---|---|
1.0 / 2 |
0.5 |
En av operanderna är av typen real , så resultatet är real . |
1 / 2.0 |
0.5 |
En av operanderna är av typen real , så resultatet är real . |
1 / 2 |
0 |
Båda operanderna är av typen int , så resultatet är int . Heltalsdelning sker och decimaltecknet trunkeras, vilket resulterar i i 0 stället för 0.5 , som man kan förvänta sig. |
real(1) / 2 |
0.5 |
För att undvika trunkering på grund av heltalsdelning konverterades först en av int operanderna till att real använda real() funktionen. |
Kommentar om modulo-operatorn
Modulo för två tal returnerar alltid ett "litet icke-negativt tal" i Kusto. Således är modulo av två tal, N % D, sådan att: 0 ≤ (N % D) < abs(D).
Till exempel följande fråga:
print plusPlus = 14 % 12, minusPlus = -14 % 12, plusMinus = 14 % -12, minusMinus = -14 % -12
Ger det här resultatet:
plusPlus | minusPlus | plusMinus | minusMinus |
---|---|---|---|
2 | 10 | 2 | 10 |
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för