你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
数值运算符
类型 int
、long
和 real
表示数值类型。
可以在这些类型对之间使用以下运算符:
运算符 | 说明 | 示例 |
---|---|---|
+ |
添加 | 3.14 + 3.14 , ago(5m) + 5m |
- |
减 | 0.23 - 0.22 , |
* |
相乘 | 1s * 5 , 2 * 2 |
/ |
除 | 10m / 1s , 4 / 2 |
% |
取模 | 4 % 2 |
< |
Less | 1 < 10 , 10sec < 1h , now() < datetime(2100-01-01) |
> |
Greater | 0.23 > 0.22 , 10min > 1sec , now() > ago(1d) |
== |
等于 | 1 == 1 |
!= |
不等于 | 1 != 0 |
<= |
Less or Equal | 4 <= 5 |
>= |
Greater or Equal | 5 >= 4 |
in |
等于某个元素 | 请参阅此处 |
!in |
不等于任何元素 | 请参阅此处 |
算术运算的类型规则
算术运算结果的数据类型由操作数的数据类型确定。 如果其中一个操作数的类型为 real
,则结果的类型为 real
。 如果两个操作数均为整数类型 (int
或 long
) ,则结果的类型将为 long
。
由于这些规则,仅涉及整数的除法运算的结果将被截断为整数,而整数可能并不总是你想要的。 若要避免截断,请在执行操作之前,使用 todouble () 将至少一个整数值real
转换为 。
以下示例演示操作数类型如何影响除法运算中的结果类型。
操作 | 结果 | 说明 |
---|---|---|
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 |
若要避免由整数除法引起的截断,请使用 real() 函数先将其中一个 int 操作数转换为 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 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈