Operatori numerici
I tipi int
, long
e 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 |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per