• 1 INF (infinity)
  • 2 NAN (Not a Number)
  • 3 Null
  • 4 Siehe auch

INF („infinity“), NAN („keine Zahl“) und Null sind speziell bewertete Systemkonstanten, die Analytica unter bestimmten Bedingungen, z. B. bei Ausnahmen, zurückgibt. Diese Konstanten können auch als Werte in Ausdrücken verwendet werden.

Konstante Bedeutung
INF Unendlichkeit oder eine reelle Zahl, die größer ist als darstellbar, z.B., 1/0
NAN Eine unbestimmte Zahl, d. h. ein numerischer Wert, der nicht genau definiert ist, wie z. B. 0/0. Der Codename NAN leidet unter einer unglücklichen historischen Fehlbenennung, da er für „Not A Number“ steht; er wird jedoch als numerischer Datentyp betrachtet, so dass IsNumber(NAN) wahr ist.
Null Das Ergebnis einer Operation, bei der die gewünschten Daten nicht vorhanden sind, wie

X, wobei der Index I nicht den Wert '?'

INF (unendlich)

INF ist das Ergebnis einer numerischen Berechnung, die mathematisch unendlich ist, wie z.B.:

1/0 → INF

INF ist auch das Ergebnis einer Berechnung, die eine Zahl größer als 1.797 x10+308 ergeben würde, was die größte Fließkommazahl ist, die Analytica darstellen kann:

10^1000 → INF

INF kann positiv oder negativ sein:

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

So bedeutet -INF negative Unendlichkeit (oder eine Zahl unter -1.796E308).

Mit INF kann man sinnvolle, mathematisch korrekte Rechenoperationen durchführen, wie z.B.:

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

NAN (Not a Number)

NaN ist das Ergebnis einer unbestimmten numerischen Berechnung, einschließlich numerischer Funktionen, deren Parameter außerhalb ihres Bereichs liegen, z. B.“

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

(Wenn Sie Komplexe Zahlen aktivieren, liefert Sqrt(-1) die gültige imaginäre Zahl 1j.)

Gewöhnlich wird eine Warnung ausgegeben, wenn Sie eine Funktion auf einen Parameterwert anwenden, der außerhalb ihres Bereichs liegt, wie in den beiden obigen Beispielen – es sei denn, Sie haben „Warnungen ignorieren“ aktiviert.

Jede arithmetische Operation, jeder Vergleich oder jede Funktion, die auf NaN angewendet wird, gibt NaN zurück:

0/0 <> NAN → NAN

Analytica’s Darstellung und Behandlung von INF und NaN ist konsistent mit den ANSI (Association of National Standards Institutes) Standards und den IEEE Floating point Standards. NaN steht für „Not A Number“, was etwas irreführend ist, da NaN eigentlich eine Art von Zahl ist. Sie können NaN in einem Ausdruck mit der Funktion IsNaN() erkennen.

Berechnungen, die mit INF und NaN durchgeführt werden, folgen den Gesetzen der Mathematik:

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

Ausdrücke, die NaN als Operand oder Parameter annehmen, ergeben NaN als Ergebnis, es sei denn, der Ausdruck hat einen wohldefinierten logischen oder numerischen Wert für jeden Wert von NaN:

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

Null

Nullist ein nicht definiertes Ergebnis, das in der Regel anzeigt, dass an der angeforderten Stelle nichts vorhanden ist, z. B. ein Subscript mit einem Wert, der nicht mit einem Wert des Index übereinstimmt:

Index I := 1..5 X → Null

Andere Operationen und Funktionen, die Null zurückgeben können, sind Slice(), Subscript(), Subindex() und MdTable(), z.z.B.

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

Sie können mit den Standardoperatoren = oder <> auf Null testen, z.B.:

X = Null → True

oder Sie können IsNull(X) verwenden. x=Null und IsNull(x) sind jedoch unterschiedlich, wenn x ein Array sein kann. x=Null ist ein Vergleich auf Zellebene, bei dem jede Zelle auf Gleichheit mit Null geprüft wird, wobei das Ergebnis die gleiche Dimensionalität wie x hat, während IsNull(x) prüft, ob der gesamte Wert genau Null ist. Wenn x ein Array ist, bei dem jede Zelle gleich Null ist, ist IsNull(x) falsch.

Wenn Null in skalaren Operationen auftaucht, erzeugt es im Allgemeinen eine Warnung und wird zu Null ausgewertet, zum Beispiel:

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

Array-reduzierende Funktionen ignorieren Null. Diese Beispiele veranschaulichen dies (unter der Annahme, dass A wie angegeben durch I indiziert wird).

variable A :=

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

Dann

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

Die Diagramme ignorieren (zeigen) einfach jeden Punkt, dessen Wert Null ist.

Zu den arrayreduzierenden Funktionen gehören Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().

Regression() ignoriert auch alle Datenpunkte, die Y = Null haben, was bei fehlenden Daten nützlich ist.

Siehe auch

  • INF, NAN und Null
  • IsNaN
  • IsNull
  • Zahlen
  • Fehler aufgrund von Nullwerten

Zahlen und TextINF, NAN und NULL – AusnahmewerteWarnungen

Articles

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.