숫자 연산자

, 및 longreal 형식int은 숫자 형식을 나타냅니다. 다음 연산자는 이러한 형식의 쌍 간에 사용할 수 있습니다.

연산자 Description 예제
+ 추가 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 어떤 요소와도 같지 않음 여기를 참조하세요.

참고

한 숫자 형식에서 다른 숫자 형식으로 변환하려면 함수를 사용합니다 to*() . 예제는 tolong()toint()을 참조하세요.

산술 연산에 대한 형식 규칙

산술 연산 결과의 데이터 형식은 피연산자의 데이터 형식에 따라 결정됩니다. 피연산자 중 하나가 형식 real이면 결과는 형식 real입니다. 두 피연산자 모두 정수 형식(int 또는 long)인 경우 결과는 형식 long입니다.

이러한 규칙으로 인해 정수만 포함하는 나누기 작업의 결과가 정수로 잘리며, 항상 원하는 것은 아닐 수도 있습니다. 잘림을 방지하려면 작업을 수행하기 전에 정수 값 real 중 하나 이상을 todouble() 을 사용하도록 변환합니다.

다음 예제에서는 피연산자 형식이 나누기 작업의 결과 형식에 미치는 영향을 보여 줍니다.

작업 결과 Description
1.0 / 2 0.5 피연산자 중 하나는 형식 real이므로 결과는 입니다 real.
1 / 2.0 0.5 피연산자 중 하나는 형식 real이므로 결과는 입니다 real.
1 / 2 0 두 피연산자는 모두 형식 int이므로 결과는 입니다 int. 정수 구분이 발생하고 10진수는 잘리기 0 때문에 가 아닌 0.5가 발생할 수 있습니다.
real(1) / 2 0.5 정수 나누기로 인한 잘림을 방지하기 위해 피연산자 중 int 하나가 먼저 함수를 사용하여 real() 로 변환 real 되었습니다.

모듈로 연산자에 대한 주석

두 숫자의 모듈로는 항상 Kusto에서 "작은 음수가 아닌 숫자"를 반환합니다. 따라서 두 숫자 % ND의 모듈로는 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