Condividi tramite


Operatori numerici

I tipi int, longe real rappresentano tipi numerici. È possibile usare gli operatori seguenti tra coppie di questi tipi:

Operatore Descrizione Esempio
+ Aggiunta 3.14 + 3.14, ago(5m) + 5m
- Sottrai 0.23 - 0.22,
* Per 1s * 5, 2 * 2
/ Divide 10m / 1s, 4 / 2
% Modulo 4 % 2
< Minore di 1 < 10, 10sec < 1h, now() < datetime(2100-01-01)
> Maggiore di 0.23 > 0.22, 10min > 1sec, now() > ago(1d)
== Equals 1 == 1
!= Non uguale a 1 != 0
<= Minore o uguale 4 <= 5
>= Maggiore o uguale 5 >= 4
in È uguale a uno degli elementi vedere qui
!in Non è uguale a nessuno degli elementi vedere qui

Nota

Per eseguire la conversione da un tipo numerico a un altro, usare to*() le funzioni. Vedere ad esempio tolong() e toint().

Regole di tipo per operazioni aritmetiche

Il tipo di dati del risultato di un'operazione aritmetica è determinato dai tipi di dati degli operandi. Se uno degli operandi è di tipo real, il risultato sarà di tipo real. Se entrambi gli operandi sono di tipi integer (int o long), il risultato sarà di tipo long.

A causa di queste regole, il risultato delle operazioni di divisione che coinvolgono solo numeri interi verrà troncato a un numero intero, che potrebbe non essere sempre quello desiderato. Per evitare il troncamento, convertire almeno uno dei valori interi in real usando todouble () prima di eseguire l'operazione.

Negli esempi seguenti viene illustrato come i tipi di operando influiscono sul tipo di risultato nelle operazioni di divisione.

Operazione Risultato Descrizione
1.0 / 2 0.5 Uno degli operandi è di tipo real, quindi il risultato è real.
1 / 2.0 0.5 Uno degli operandi è di tipo real, quindi il risultato è real.
1 / 2 0 Entrambi gli operandi sono di tipo int, quindi il risultato è int. La divisione di interi si verifica e il separatore decimale viene troncato, ottenendo invece 0 di 0.5, come si potrebbe prevedere.
real(1) / 2 0.5 Per evitare il troncamento a causa della divisione integer, uno degli int operandi è stato prima convertito in real usando la real() funzione .

Commento sull'operatore modulo

Il modulo di due numeri restituisce sempre in Kusto un "numero piccolo non negativo". Pertanto, il modulo di due numeri, N % D, è tale che: 0 ≤ (N % D) < abs(D).

Ad esempio, la query seguente:

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

Produce questo risultato:

plusPlus minusPlus plusMinus minusMinus
2 10 2 10