Share via


数値演算子

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)
== 等しい 1 == 1
!= 等しくない 1 != 0
<= 以下 4 <= 5
>= 以上 5 >= 4
in 要素のいずれかに等しい こちらを参照してください
!in 要素のいずれとも等しくない こちらを参照してください

Note

ある数値型から別の数値型に変換するには、to*() 関数を使用します。 たとえば、 tolong()toint()を参照してください。

算術演算の型規則

算術演算の結果のデータ型は、オペランドのデータ型によって決まります。 オペランドの 1 つが 型 realの場合、結果は 型 realになります。 両方のオペランドが整数型 (int または long) の場合、結果は 型 longになります。

これらの規則により、整数のみを含む除算操作の結果は整数に切り捨てられます。これは、常に目的とは限らない場合があります。 切り捨てを回避するには、演算を実行する前に real 、少なくとも 1 つの整数値 を todouble() を使用して に変換します。

次の例は、オペランド型が除算演算の結果の型にどのように影響するかを示しています。

操作 結果 説明
1.0 / 2 0.5 オペランドの 1 つが 型 realであるため、結果は になります real
1 / 2.0 0.5 オペランドの 1 つが 型 realであるため、結果は になります real
1 / 2 0 オペランドの両方が 型 intであるため、結果は になります int。 整数除算が行われ、10 進数が切り捨てられ、00.5期待どおりに ではなく になります。
real(1) / 2 0.5 整数除算による切り捨てを回避するために、オペランドの 1 つが最初に int 関数を使用して real()real変換されました。

剰余演算子に関するコメント

2 つの数値の剰余によって、Kusto で常に "小さい負以外の数値" が返されます。 したがって、2 つの数値の剰余 (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