Conteúdo
- 1 INF (infinito)
- 2 NAN (Não um número)
- 3 Nulo
- 4 Veja Também
INF
(“infinito”), NAN
(“não um número”), e Null
são constantes de sistema com valor especial que a Analytica retorna em condições particulares, tais como exceções. Estas constantes também podem ser usadas como valores em expressões.
Constant | Meaning |
---|---|
INF |
Infinity ou um número real maior do que pode ser representado, por exemplo 1/0 |
NAN |
Um número indeterminado, que é um valor numérico que não está bem definido, como por exemplo 0/0 . O nome de código NAN sofre de um infeliz erro histórico, pois significa “Not A Number”; no entanto, é considerado como um tipo de dado numérico, e portanto IsNumber(NAN) é verdade. |
Null |
O resultado de uma operação onde os dados desejados não estão lá, como
|
INF (infinito)
INF é o resultado de um cálculo numérico que é matematicamente infinito, como por exemplo:
1/0 → INF
INF é também o resultado de um cálculo que produziria um número maior que 1.797 x10+308
, que é o maior número de ponto flutuante que Analytica pode representar:
10^1000 → INF
INF pode ser positivo ou negativo:
-1 * 10^1000 → -INF
-1/0 → -Inf
INF significa infinito negativo (ou um número abaixo de -1.796E308
).
Você pode fazer aritmética útil e matematicamente correta com INF, como por exemplo:
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Não um Número)
NaN é o resultado de um cálculo numérico indeterminado, incluindo funções numéricas cujo parâmetro está fora do seu domínio, como”
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Se activar Números Complexos, Sqrt(-1) retorna o número imaginário válido, 1j.)
Geralmente dá um aviso se você aplicar uma função a um valor de parâmetro fora de seu intervalo, como os dois exemplos acima – a menos que você tenha verificado “Ignorar avisos”.
Qualquer operação aritmética, comparação ou função aplicada ao NaN retorna NaN:
0/0 <> NAN → NAN
A representação e tratamento do INF e NaN pela ANSI (Association of National Standards Institutes) é consistente com os padrões ANSI (Association of National Standards Institutes) e os padrões de ponto flutuante do IEEE. NaN significa “Not A Number”, que é um pouco enganador, uma vez que NaN é realmente uma espécie de número. Você pode detectar NaN em uma expressão usando a função IsNaN().
Cálculos feitos com INF e NaN seguem as leis da matemática:
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Expressões tomando NaN como um operando ou parâmetro dão NaN como resultado, a menos que a expressão tenha um valor lógico ou numérico bem definido para qualquer valor de NaN:
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Nulo
Null
é um resultado mal definido, geralmente indicando que não há nada no local solicitado, por exemplo um subscrito usando um valor que não corresponde a um valor do índice:
Index I := 1..5
X → Null
Outras operações e funções que podem retornar Nulo incluem Slice(), Subscript(), Subindex(), e MdTable(), e.g.
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
Pode testar para Null usando o padrão = ou <> operadores, tais como:
X = Null → True
ou você pode usar IsNull(X)
. No entanto, x=Null
e IsNull(x)
são diferentes quando x
pode ser um array. x=Null
é uma comparação de nível de célula, onde cada célula é testada para igualdade com Null, com o resultado tendo a mesma dimensionalidade de x
, enquanto IsNull(x)
testa se o valor inteiro é exactamente Null. Quando x
é um array onde cada célula é igual a Null, IsNull(x)
é falso.
Quando Null aparece em operações escalares, ele geralmente produz um aviso e avalia para Null, por exemplo:
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
As funções redutoras de raio ignoram Null. Estes exemplos demonstram (assumir A
é indexado por I
como indicado).
variable A :=
I ▶ | |||||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 5 |
8 | Nulo | 4 | Nulo | 0 |
Então
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Gráficos simplesmente ignorarão (não mostrarão) qualquer ponto cujo valor seja Nulo.
Array-reducing functions include Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().
Regressão() também ignora quaisquer pontos de dados que tenham Y = Null
, o que é útil para dados ausentes.
Veja também
- INF, NAN, e Null
- IsNaN
- IsNull
- Números
- Erros resultantes de valores Null