Contenidos
- 1 INF (infinito)
- 2 NAN (Not a Number)
- 3 Null
- 4 Ver también
INF
(«infinito»), NAN
(«no es un número»), y Null
son constantes del sistema con valores especiales que Analytica devuelve en condiciones particulares, como las excepciones. Estas constantes también pueden utilizarse como valores en las expresiones.
Constante | Significado |
---|---|
INF |
El infinito o un número real mayor que puede representarse, por ejemplo, 1/0 |
NAN |
Un número indeterminado, que es un valor numérico que no está bien definido, como 0/0 . El nombre de código NAN sufre de un desafortunado error histórico de denominación, ya que significa «Not A Number» (no es un número); sin embargo, se considera un tipo de dato numérico, y por lo tanto IsNumber(NAN) es verdadero. |
Null |
El resultado de una operación en la que no está el dato deseado, como
|
INF (infinito)
INF es el resultado de un cálculo numérico que es matemáticamente infinito, como:
1/0 → INF
INF es también el resultado de un cálculo que produciría un número mayor que 1.797 x10+308
, que es el mayor número en coma flotante que Analytica puede representar:
10^1000 → INF
INF puede ser positivo o negativo:
-1 * 10^1000 → -INF
-1/0 → -Inf
Así que -INF significa infinito negativo (o un número inferior a -1.796E308
).
Se puede realizar una aritmética útil y matemáticamente correcta con INF, como:
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Not a Number)
NaN es el resultado de un cálculo numérico indeterminado, incluyendo funciones numéricas cuyo parámetro está fuera de su dominio, como»
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Si habilita Números Complejos, Sqrt(-1) devuelve el número imaginario válido, 1j.)
Por lo general, da una advertencia si se aplica una función a un valor de parámetro fuera de su rango, como los dos ejemplos anteriores – a menos que haya marcado «Ignorar advertencias».
Cualquier operación aritmética, comparación, o función aplicada a NaN devuelve NaN:
0/0 <> NAN → NAN
La representación de Analytica y el tratamiento de INF y NaN es consistente con las normas ANSI (Asociación de Institutos Nacionales de Normalización) y las normas de punto flotante IEEE. NaN significa «Not A Number» (no es un número), lo que es un poco engañoso, ya que NaN es realmente un tipo de número. Puede detectar NaN en una expresión utilizando la función IsNaN().
Los cálculos realizados con INF y NaN siguen las leyes de las matemáticas:
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Las expresiones que toman NaN como operando o parámetro dan como resultado NaN a menos que la expresión tenga un valor lógico o numérico bien definido para cualquier valor de NaN:
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Null
Null
es un resultado que está mal definido, normalmente indicando que no hay nada en la ubicación solicitada, por ejemplo un subíndice usando un valor que no coincide con un valor del índice:
Index I := 1..5
X → Null
Otras operaciones y funciones que pueden devolver Null incluyen Slice(), Subscript(), Subindex(), y MdTable(), e.g.
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
Puede comprobar la existencia de Null utilizando los operadores estándar = o <>, como:
X = Null → True
o puede utilizar IsNull(X)
. Sin embargo, x=Null
y IsNull(x)
son diferentes cuando x
puede ser una matriz. x=Null
es una comparación a nivel de celda, en la que se comprueba la igualdad de cada celda con Null, y el resultado tiene la misma dimensionalidad que x
, mientras que IsNull(x)
comprueba si todo el valor es exactamente Null. Cuando x
es una matriz donde cada celda es igual a Null, IsNull(x)
es falso.
Cuando Null aparece en operaciones escalares, generalmente produce una advertencia y se evalúa a Null, por ejemplo:
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
Las funciones de reducción de matrices ignoran Null. Estos ejemplos lo demuestran (suponiendo que A
está indexado por I
como se indica).
variable A :=
I ▶ | ||||
---|---|---|---|---|
1 | 2 | 3 | 4 | 5 |
8 | Null | 4 | Null | 0 |
Entonces
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Los gráficos simplemente ignorarán (no mostrarán) cualquier punto cuyo valor sea Null.
Las funciones de reducción de matrices incluyen Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().
Regresión() también ignora cualquier punto de datos que tenga Y = Null
, lo que es útil para los datos que faltan.
Ver también
- INF, NAN y Null
- IsNaN
- IsNull
- Números
- Errores resultantes de valores Null