• 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

X, donde el índice I no tiene el valor '?'

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

Nulles 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

Números y textoINF, NAN y NULL – Valores de excepciónAdvertencias

Articles

Deja una respuesta

Tu dirección de correo electrónico no será publicada.