Operatory liczbowe
int
Typy , long
i real
reprezentują typy liczbowe.
Następujące operatory mogą być używane między parami tych typów:
Operator | opis | Przykład |
---|---|---|
+ |
Dodaj | 3.14 + 3.14 , ago(5m) + 5m |
- |
Subtract | 0.23 - 0.22 , |
* |
Razy | 1s * 5 , 2 * 2 |
/ |
Podziel | 10m / 1s , 4 / 2 |
% |
Modulo | 4 % 2 |
< |
Mniejsze | 1 < 10 , , 10sec < 1h now() < datetime(2100-01-01) |
> |
Większe | 0.23 > 0.22 , , 10min > 1sec now() > ago(1d) |
== |
Równa się | 1 == 1 |
!= |
Nie równa się | 1 != 0 |
<= |
Mniejsze lub równe | 4 <= 5 |
>= |
Większe lub równe | 5 >= 4 |
in |
Równa się jednemu z elementów | zobacz tutaj |
!in |
Nie równa się żadnej z elementów | zobacz tutaj |
Uwaga
Aby przekonwertować z jednego typu liczbowego na inny, użyj to*()
funkcji. Na przykład zobacz tolong()
i toint()
.
Reguły typów dla operacji arytmetycznych
Typ danych wyniku operacji arytmetycznej jest określany przez typy danych operandów. Jeśli jeden z operandów ma typ real
, wynik będzie typu real
. Jeśli oba operandy mają typy całkowite (int
lub long
), wynik będzie typu long
.
Ze względu na te reguły wynik operacji dzielenia, które obejmują tylko liczby całkowite, zostanie obcięty z liczbą całkowitą, co może nie zawsze być tym, co chcesz. Aby uniknąć obcinania, przed wykonaniem operacji przekonwertuj co najmniej jedną z wartości całkowitych na real
wartość todouble().
W poniższych przykładach pokazano, jak typy operandów wpływają na typ wyniku w operacjach dzielenia.
Operacja | Wynik | opis |
---|---|---|
1.0 / 2 |
0.5 |
Jednym z operandów jest typ real , więc wynik to real . |
1 / 2.0 |
0.5 |
Jednym z operandów jest typ real , więc wynik to real . |
1 / 2 |
0 |
Oba operandy są typu int , więc wynik to int . Występuje podział liczby całkowitej, a liczba dziesiętna jest obcięta, co powoduje 0 zamiast 0.5 , jak można się spodziewać. |
real(1) / 2 |
0.5 |
Aby uniknąć obcinania z powodu dzielenia liczb całkowitych, jeden z int operandów został po raz pierwszy przekonwertowany na real przy użyciu real() funkcji . |
Komentowanie operatora modulo
Modulo dwóch liczb zawsze zwraca w Kusto "małą liczbę nie ujemną". W związku z tym modulo dwóch liczb, N % D, jest taki, że: 0 ≤ (N % D) < abs(D).
Na przykład następujące zapytanie:
print plusPlus = 14 % 12, minusPlus = -14 % 12, plusMinus = 14 % -12, minusMinus = -14 % -12
Tworzy ten wynik:
plusPlus | minusPlus | plusMinus | minusMinus |
---|---|---|---|
2 | 10 | 2 | 10 |
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla