• 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

X, dove l’indice I non ha il valore '?'

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

Numeri e testoINF, NAN, e NULL – Valori di eccezioneAvvertenze

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.