Obsah
- 1 INF (nekonečno)
- 2 NAN (Not a Number)
- 3 Null
- 4 Viz také
INF
(„nekonečno“), NAN
(„není číslo“) a Null
jsou systémové konstanty se speciální hodnotou, které Analytica vrací za určitých podmínek, například při výjimkách. Tyto konstanty lze také použít jako hodnoty ve výrazech.
Konstanta | Význam |
---|---|
INF |
Nekonečno nebo reálné číslo větší, než lze reprezentovat, např, 1/0 |
NAN |
Neurčité číslo, což je číselná hodnota, která není dobře definovaná, například 0/0 . Kódové označení NAN trpí nešťastným historickým chybným pojmenováním, neboť znamená „Not A Number“, nicméně je považováno za číselný datový typ, a proto platí IsNumber(NAN) . |
Null |
Výsledek operace, kde požadovaný údaj není, jako například
|
INF (nekonečno)
INF je výsledek numerického výpočtu, který je matematicky nekonečný, jako např:
1/0 → INF
INF je také výsledek výpočtu, jehož výsledkem by bylo číslo větší než 1.797 x10+308
, což je největší číslo s pohyblivou řádovou čárkou, které může Analytica reprezentovat:
10^1000 → INF
INF může být kladné nebo záporné:
-1 * 10^1000 → -INF
-1/0 → -Inf
Takže -INF znamená záporné nekonečno (nebo číslo menší než -1.796E308
).
S INF můžete provádět užitečné, matematicky správné aritmetické operace, jako např:
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Not a Number)
NaN je výsledek neurčitého numerického výpočtu, včetně numerických funkcí, jejichž parametr je mimo jejich obor, například“
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Pokud povolíte komplexní čísla, Sqrt(-1) vrátí platné imaginární číslo 1j.)
Obvykle vydá varování, pokud použijete funkci na hodnotu parametru mimo její rozsah, jako jsou dva výše uvedené příklady – pokud jste nezaškrtli „Ignorovat varování“.
Každá aritmetická operace, porovnání nebo funkce aplikovaná na NaN vrátí NaN:
0/0 <> NAN → NAN
Prezentace a zacházení s INF a NaN v programu Analytica je v souladu se standardy ANSI (Association of National Standards Institutes) a IEEE Floating point. NaN znamená „Not A Number“, což je trochu zavádějící, protože NaN je skutečně druh čísla. NaN ve výrazu můžete zjistit pomocí funkce IsNaN().
Výpočty prováděné s INF a NaN se řídí zákony matematiky:
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Výrazy přijímající NaN jako operand nebo parametr dávají jako výsledek NaN, pokud výraz nemá dobře definovanou logickou nebo číselnou hodnotu pro libovolnou hodnotu NaN:
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Null
Null
je špatně definovaný výsledek, který obvykle znamená, že na požadovaném místě nic není, například index s použitím hodnoty, která neodpovídá hodnotě indexu:
Index I := 1..5
X → Null
Mezi další operace a funkce, které mohou vrátit Null, patří Slice(), Subscript(), Subindex() a MdTable(), např.Například
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
Nulové hodnoty můžete testovat pomocí standardních operátorů = nebo <>, například:
X = Null → True
nebo můžete použít IsNull(X)
. Avšak x=Null
a IsNull(x)
se liší, když x
může být pole. x=Null
je porovnání na úrovni buněk, kdy je každá buňka testována na rovnost s Null, přičemž výsledek má stejný rozměr jako x
, zatímco IsNull(x)
testuje, zda je celá hodnota přesně Null. Pokud je x
pole, kde je každá buňka rovna Null, IsNull(x)
je false.
Pokud se Null objeví ve skalárních operacích, zpravidla vyvolá varování a vyhodnotí se jako Null, například:
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
Funkce redukující pole ignorují Null. Tyto příklady to demonstrují (předpokládejte, že A
je indexováno I
, jak je uvedeno).
variable A :=
I ▶ | ||||
---|---|---|---|---|
1 | 2 | 3 | 4 | 5 |
8 | Null | 4 | Null | 0 |
Ten
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Grafy budou jednoduše ignorovat (nezobrazí) žádný bod, jehož hodnota je Null.
Mezi funkce redukující pole patří Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().
Regrese() také ignoruje všechny datové body, které mají Y = Null
, což je užitečné pro chybějící data.
Viz také
- INF, NAN a Null
- IsNaN
- IsNull
- Numbers
- Errors resulting from Null values
.