你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
数值运算符
类型 int
、long
和 real
表示数值类型。
可以在这些类型对之间使用以下运算符:
运算符 | 说明 | 示例 |
---|---|---|
+ |
添加 | %> |
- |
减 | 0.23 - 0.22 ? |
* |
相乘 | %> |
/ |
除 | %> |
% |
取模 | 4 % 2 |
< |
Less | .- . |
> |
Greater | .- . |
== |
等于 | 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 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈