• 1 INF (infinity)
  • 2 NAN (Not a Number)
  • 3 Null
  • 4 See Also

INF („infinity”), NAN („nie jest liczbą”), oraz Null są stałymi systemowymi o specjalnej wartości, które Analytica zwraca w określonych warunkach, takich jak wyjątki. Stałe te mogą być również używane jako wartości w wyrażeniach.

Stała Znaczenie
INF Nieskończoność lub liczba rzeczywista większa niż można ją przedstawić, np, 1/0
NAN Liczba nieokreślona, czyli wartość liczbowa, która nie jest dobrze zdefiniowana, np. 0/0. Nazwa kodowa NAN cierpi z powodu niefortunnego historycznego błędnego nazewnictwa, ponieważ oznacza „Not A Number”; jednak jest uważana za numeryczny typ danych, a zatem IsNumber(NAN) jest prawdziwe.
Null Wynik operacji, w której nie ma pożądanych danych, takich jak

X, gdzie indeks I nie ma wartości '?'

INF (nieskończoność)

INF jest wynikiem obliczeń numerycznych, które są matematycznie nieskończone, takich jak:

1/0 → INF

INF jest również wynikiem obliczeń, które dałyby liczbę większą niż 1.797 x10+308, która jest największą liczbą zmiennoprzecinkową, jaką Analytica może reprezentować:

10^1000 → INF

INF może być dodatnia lub ujemna:

-1 * 10^1000 → -INF -1/0 → -Inf

Więc -INF oznacza ujemną nieskończoność (lub liczbę poniżej -1.796E308).

Z INF można wykonywać użyteczne, matematycznie poprawne działania arytmetyczne, takie jak:

INF + 10 → INF INF/0 → INF 10 - INF → -INF 100/0 = INF → True

NAN (Not a Number)

NaN jest wynikiem nieokreślonego obliczenia numerycznego, w tym funkcji numerycznych, których parametr znajduje się poza ich dziedziną, takich jak”

INF - INF → NAN 0/0 → NAN INF/INF → NAN Sqrt(-1) → NAN ArcSin(2) → NAN

(Jeśli włączysz opcję Complex Numbers, Sqrt(-1) zwraca poprawną liczbę urojoną, 1j.)

Zazwyczaj pojawia się ostrzeżenie, jeśli zastosujesz funkcję do wartości parametru spoza jej zakresu, tak jak w dwóch powyższych przykładach – chyba że zaznaczyłeś opcję „Ignoruj ostrzeżenia”.

Każda operacja arytmetyczna, porównanie lub funkcja zastosowana do NaN zwraca NaN:

0/0 <> NAN → NAN

Prezentacja i traktowanie INF i NaN w programie Analityka jest zgodne ze standardami ANSI (Association of National Standards Institutes) oraz standardami zmiennoprzecinkowymi IEEE. NaN to skrót od „Not A Number”, co jest nieco mylące, ponieważ NaN jest w rzeczywistości rodzajem liczby. Możesz wykryć NaN w wyrażeniu używając funkcji IsNaN().

Obliczenia wykonywane za pomocą INF i NaN są zgodne z prawami matematyki:

1/INF → 0 1/(-INF) → 0 INF + INF → INF INF - INF → NAN

Wyrażenia przyjmujące NaN jako operand lub parametr dają NaN jako wynik, chyba że wyrażenie ma dobrze zdefiniowaną wartość logiczną lub liczbową dla dowolnej wartości NaN:

True OR NAN → True NAN AND False → False IF True THEN 5 ELSE NAN → 5

Null

Nulljest wynikiem, który jest źle zdefiniowany, zwykle wskazując, że nie ma nic w żądanym miejscu, na przykład indeks wykorzystujący wartość, która nie pasuje do wartości indeksu:

Index I := 1..5 X → Null

Inne operacje i funkcje, które mogą zwrócić Null obejmują Slice(), Subscript(), Subindex() i MdTable(), np.g.

Index Year := Slice(Year, 4) → NULL Variable X := Array(Year, ) X → NULL

Możesz przetestować dla Null używając standardowych operatorów = lub <>, takich jak:

X = Null → True

lub możesz użyć IsNull(X). Jednak x=Null i IsNull(x) są różne, gdy x może być tablicą. x=Null jest porównaniem na poziomie komórek, gdzie każda komórka jest testowana pod kątem równości z Null, a wynik ma ten sam wymiar co x, podczas gdy IsNull(x) testuje, czy cała wartość jest dokładnie Null. Gdy x jest tablicą, w której każda komórka jest równa Null, IsNull(x) jest fałszywe.

Gdy Null pojawia się w operacjach skalarnych, generalnie daje ostrzeżenie i ocenia na Null, na przykład:

10 + Null → Null Null - 10 → Null 1 AND Null → Null

Funkcje redukujące tablicę ignorują Null. Te przykłady demonstrują (załóżmy, że A jest indeksowane przez I, jak wskazano).

variable A :=

.

I ▶
1 2 3 4 5
8 Null 4 Null 0

Then

Sum(A, I) → 12 Average(A, I) → 4 JoinText(A, I, ', ') → "8, 4, 0"

Graphs will simply ignore (not show) any point whose value is Null.

Funkcje redukujące tablicę zawierają Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().

Regresja() ignoruje również wszelkie punkty danych, które mają Y = Null, co jest przydatne w przypadku brakujących danych.

Zobacz także

  • INF, NAN, i Null
  • IsNaN
  • IsNull
  • Liczby
  • Błędy wynikające z wartości Null

Liczby i tekstINF, NAN, i NULL – wartości wyjątkówOstrzeżenia

.

Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.