數值運算子

類型 intlongreal 代表數值類型。 下列運算子可用於這些類型的配對:

運算子 描述 範例
+ 新增 3.14 + 3.14, ago(5m) + 5m
- 減去 0.23 - 0.22,
* 乘以 1s * 5, 2 * 2
/ 除以 10m / 1s, 4 / 2
% 模數 4 % 2
< 小於 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> 大於 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Equals 1 == 1
!= 不等於 1 != 0
<= 小於或等於 4 <= 5
>= 大於或等於 5 >= 4
in 等於其中一個元素 請參閱這裡
!in 不等於任何元素 請參閱這裡

注意

若要從一個數值類型轉換成另一個,請使用 to*() 函式。 如需範例,請參閱 tolong()toint()

算術運算的類型規則

算術運算結果的數據類型取決於操作數的數據類型。 如果其中一個操作數的類型為 real,則結果會是 型別 real。 如果這兩個操作數都是整數類型 (intlong) ,結果將會是 類型 long

由於這些規則,只有涉及整數的除法運算結果會截斷為整數,這不一定是您想要的結果。 若要避免截斷,請在執行作業之前,先將至少一個整數值 real 轉換為使用 todouble ()

下列範例說明操作數類型如何影響除法運算的結果類型。

作業 結果 描述
1.0 / 2 0.5 其中一個操作數的類型為 real,因此結果為 real
1 / 2.0 0.5 其中一個操作數的類型為 real,因此結果為 real
1 / 2 0 這兩個操作數的類型都是 int,因此結果為 int。 發生整數除法,並截斷十進位,導致 0 而不是 0.5,如預期。
real(1) / 2 0.5 為了避免因整數除法而截斷,其中 int 一個操作數會先轉換為 real 使用 函 real() 式。

關於模數運算子的批注

兩個數字的模數一律會在 Kusto 中傳回「小的非負數」。 因此,兩個數字 N % D 的模數如下所示:0 ≤ (N % D) < abs(D)。

例如,下列查詢:

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

產生此結果:

plusPlus minusPlus plusMinus minusMinus
2 10 2 10