Contenit
- 1 INF (infinit)
- 2 NAN (Not a Number)
- 3 Null
- 4 Vezi și
INF
(„infinit”), NAN
(„nu este un număr”), și Null
sunt constante de sistem cu valori speciale pe care Analytica le returnează în anumite condiții, cum ar fi excepțiile. Aceste constante pot fi, de asemenea, utilizate ca valori în expresii.
Constantă | Semnificație |
---|---|
INF |
Infinit sau un număr real mai mare decât poate fi reprezentat, de ex, 1/0 |
NAN |
Un număr nedeterminat, care este o valoare numerică ce nu este bine definită, cum ar fi 0/0 . Numele de cod NAN suferă de o greșeală istorică nefericită de denumire, în sensul că înseamnă „Not A Number” (nu este un număr); cu toate acestea, este considerat a fi un tip de date numerice și, prin urmare, IsNumber(NAN) este adevărat. |
Null |
Rezultatul unei operații în care nu există datele dorite, cum ar fi
|
INF (infinit)
INF este rezultatul unui calcul numeric care este infinit din punct de vedere matematic, cum ar fi:
1/0 → INF
INF este, de asemenea, rezultatul unui calcul care ar produce un număr mai mare decât 1.797 x10+308
, care este cel mai mare număr cu virgulă mobilă pe care Analytica îl poate reprezenta:
10^1000 → INF
INF poate fi pozitiv sau negativ:
-1 * 10^1000 → -INF
-1/0 → -Inf
Prin urmare, -INF înseamnă infinit negativ (sau un număr sub -1.796E308
).
Puteți efectua aritmetică utilă și corectă din punct de vedere matematic cu INF, cum ar fi:
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Not a Number)
NaN este rezultatul unui calcul numeric nedeterminat, inclusiv funcțiile numerice al căror parametru este în afara domeniului lor, cum ar fi”
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Dacă activați Numerele complexe, Sqrt(-1) returnează numărul imaginar valid, 1j.)
De obicei dă un avertisment dacă aplicați o funcție la o valoare de parametru în afara intervalului său, cum ar fi cele două exemple de mai sus – cu excepția cazului în care ați bifat „Ignore warnings” (Ignorați avertismentele).
Care operație aritmetică, comparație sau funcție aplicată la NaN returnează NaN:
0/0 <> NAN → NAN
Reprezentarea și tratarea de către Analitica a INF și NaN este în concordanță cu standardele ANSI (Association of National Standards Institutes) și standardele IEEE Floating point. NaN înseamnă „Not A Number” (nu este un număr), ceea ce este puțin înșelător, deoarece NaN este într-adevăr un tip de număr. Puteți detecta NaN într-o expresie cu ajutorul funcției IsNaN().
Calculele efectuate cu INF și NaN respectă legile matematicii:
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Expresiile care iau NaN ca operand sau parametru dau NaN ca rezultat, cu excepția cazului în care expresia are o valoare logică sau numerică bine definită pentru orice valoare a lui NaN:
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Null
Null
este un rezultat care nu este bine definit, indicând de obicei că nu există nimic în locația solicitată, de exemplu un subscript care utilizează o valoare care nu se potrivește cu o valoare a indexului:
Index I := 1..5
X → Null
Alte operații și funcții care pot returna Null includ Slice(), Subscript(), Subindex() și MdTable(), e.g.
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
Puteți testa pentru Null folosind operatorii standard = sau <>, cum ar fi:
X = Null → True
sau puteți folosi IsNull(X)
. Cu toate acestea, x=Null
și IsNull(x)
sunt diferite atunci când x
poate fi o matrice. x=Null
este o comparație la nivel de celulă, în care fiecare celulă este testată pentru egalitate cu Null, rezultatul având aceeași dimensionalitate ca x
, în timp ce IsNull(x)
testează dacă întreaga valoare este exact Null. Atunci când x
este o matrice în care fiecare celulă este egală cu Null, IsNull(x)
este falsă.
Când Null apare în operațiile scalare, în general produce un avertisment și se evaluează la Null, de exemplu:
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
Funcțiile de reducere a matricei ignoră Null. Aceste exemple demonstrează (presupunem că A
este indexat de I
, așa cum este indicat).
variable A :=
I ▶ | |||||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 5 |
8 | Null | 4 | Null | 0 |
Atunci
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Graficele vor ignora pur și simplu (nu vor afișa) orice punct a cărui valoare este Null.
Funcțiile de reducere a tablourilor includ Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().
Regression() ignoră, de asemenea, toate punctele de date care au Y = Null
, ceea ce este util pentru datele lipsă.
Vezi și
- INF, NAN și NULL
- IsNaN
- IsNull
- Numere
- Erori rezultate din valori NULL
.