Contenuti
- 1 INF (infinito)
- 2 NAN (Non un numero)
- 3 Null
- 4 Vedi anche
INF
(“infinito”), NAN
(“non è un numero”), e Null
sono costanti di sistema con valori speciali che Analytica restituisce in particolari condizioni, come le eccezioni. Queste costanti possono anche essere usate come valori nelle espressioni.
Costante | Significato |
---|---|
INF |
Infinito o un numero reale più grande di quanto possa essere rappresentato, per esempio, 1/0 |
NAN |
Un numero indeterminato, che è un valore numerico non ben definito, come 0/0 . Il nome in codice NAN soffre di uno sfortunato errore storico di denominazione, in quanto sta per “Not A Number”; tuttavia, è considerato un tipo di dati numerico, e quindi IsNumber(NAN) è vero. |
Null |
Il risultato di un’operazione in cui il dato desiderato non c’è, come
|
INF (infinito)
INF è il risultato di un calcolo numerico che è matematicamente infinito, come:
1/0 → INF
INF è anche il risultato di un calcolo che produrrebbe un numero più grande di 1.797 x10+308
, che è il più grande numero in virgola mobile che Analytica può rappresentare:
10^1000 → INF
INF può essere positivo o negativo:
-1 * 10^1000 → -INF
-1/0 → -Inf
Quindi -INF significa infinito negativo (o un numero sotto -1.796E308
).
Si può eseguire un’aritmetica utile e matematicamente corretta con INF, come ad esempio:
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Not a Number)
NaN è il risultato di un calcolo numerico indeterminato, incluse le funzioni numeriche il cui parametro è al di fuori del loro dominio, come “
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Se abiliti i numeri complessi, Sqrt(-1) ritorna il numero immaginario valido, 1j.)
Di solito dà un avvertimento se si applica una funzione a un valore di parametro al di fuori del suo intervallo, come i due esempi precedenti – a meno che non si sia selezionato “Ignora avvertimenti”.
Ogni operazione aritmetica, confronto o funzione applicata a NaN restituisce NaN:
0/0 <> NAN → NAN
La rappresentazione e il trattamento di INF e NaN da parte di Annalytica è coerente con gli standard ANSI (Association of National Standards Institutes) e gli standard IEEE in virgola mobile. NaN sta per “Not A Number”, che è un po’ fuorviante, dato che NaN è davvero un tipo di numero. Potete rilevare NaN in un’espressione usando la funzione IsNaN().
I calcoli eseguiti con INF e NaN seguono le leggi della matematica:
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Le espressioni che prendono NaN come operando o parametro danno NaN come risultato a meno che l’espressione abbia un valore logico o numerico ben definito per qualsiasi valore di NaN:
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Null
Null
è un risultato che è mal definito, di solito indica che non c’è nulla nella posizione richiesta, per esempio un pedice che usa un valore che non corrisponde a un valore dell’indice:
Index I := 1..5
X → Null
Altre operazioni e funzioni che possono restituire Null includono Slice(), Subscript(), Subindex(), e MdTable(), per esempiog.
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
È possibile verificare la presenza di Null usando gli operatori standard = o <>, come:
X = Null → True
o potete usare IsNull(X)
. Tuttavia, x=Null
e IsNull(x)
sono diversi quando x
può essere un array. x=Null
è un confronto a livello di cella, dove ogni cella viene testata per l’uguaglianza con Null, con il risultato che ha la stessa dimensione di x
, mentre IsNull(x)
verifica se l’intero valore è esattamente Null. Quando x
è una matrice in cui ogni cella è uguale a Null, IsNull(x)
è falso.
Quando Null appare in operazioni scalari, generalmente produce un avviso e valuta Null, per esempio:
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
Le funzioni di riduzione delle matrici ignorano Null. Questi esempi lo dimostrano (supponiamo che A
sia indicizzato da I
come indicato).
variable A :=
I ▶ | ||||
---|---|---|---|---|
1 | 2 | 3 | 4 | 5 |
8 | Null | 4 | Null | 0 |
Allora
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Graphs semplicemente ignorerà (non mostrerà) qualsiasi punto il cui valore è Null.
Le funzioni di riduzione delle matrici includono Somma(), Min(), Max(), ArgMin(), ArgMax(), Prodotto(), Media(), JoinText(), Irr(), Npv().
Regressione() ignora anche tutti i punti dati che hanno Y = Null
, il che è utile per i dati mancanti.
Vedi anche
- INF, NAN, e Null
- IsNaN
- IsNull
- Numeri
- Errori derivanti da valori Null