Contenu
- 1 INF (infini)
- 2 NAN (Not a Number)
- 3 Null
- 4 See Also
INF
(« infini »), NAN
(« pas un nombre »), et Null
sont des constantes système à valeurs spéciales qu’Analytica renvoie dans des conditions particulières, comme des exceptions. Ces constantes peuvent également être utilisées comme valeurs dans des expressions.
Constante | Message |
---|---|
INF |
Infini ou un nombre réel plus grand que ce qui peut être représenté, par exemple, 1/0 |
NAN |
Un nombre indéterminé, qui est une valeur numérique qui n’est pas bien définie, par exemple 0/0 . Le nom de code NAN souffre d’une malencontreuse erreur de dénomination historique en ce qu’il signifie « Not A Number » ; cependant, il est considéré comme un type de données numériques, et donc IsNumber(NAN) est vrai. |
Null |
Le résultat d’une opération où la donnée désirée n’est pas là, comme
|
INF (infini)
INF est le résultat d’un calcul numérique qui est mathématiquement infini, comme :
1/0 → INF
INF est également le résultat d’un calcul qui produirait un nombre plus grand que 1.797 x10+308
, qui est le plus grand nombre à virgule flottante qu’Analytica peut représenter :
10^1000 → INF
INF peut être positif ou négatif :
-1 * 10^1000 → -INF
-1/0 → -Inf
Donc -INF signifie l’infini négatif (ou un nombre inférieur à -1.796E308
).
Vous pouvez effectuer des opérations arithmétiques utiles et mathématiquement correctes avec INF, telles que :
INF + 10 → INF
INF/0 → INF
10 - INF → -INF
100/0 = INF → True
NAN (Not a Number)
NaN est le résultat d’un calcul numérique indéterminé, y compris les fonctions numériques dont le paramètre est hors de leur domaine, comme »
INF - INF → NAN
0/0 → NAN
INF/INF → NAN
Sqrt(-1) → NAN
ArcSin(2) → NAN
(Si vous activez les nombres complexes, Sqrt(-1) renvoie le nombre imaginaire valide, 1j.)
Il donne généralement un avertissement si vous appliquez une fonction à une valeur de paramètre en dehors de sa plage, comme les deux exemples ci-dessus – à moins que vous n’ayez coché « Ignorer les avertissements ».
Toute opération arithmétique, comparaison ou fonction appliquée à NaN renvoie NaN :
0/0 <> NAN → NAN
La représentation et le traitement d’INF et de NaN par Analytica sont conformes aux normes ANSI (Association of National Standards Institutes) et aux normes IEEE en virgule flottante. NaN signifie « Not A Number », ce qui est un peu trompeur, puisque NaN est en réalité une sorte de nombre. Vous pouvez détecter NaN dans une expression à l’aide de la fonction IsNaN().
Les calculs effectués avec INF et NaN suivent les lois des mathématiques :
1/INF → 0
1/(-INF) → 0
INF + INF → INF
INF - INF → NAN
Les expressions prenant NaN comme opérande ou paramètre donnent NaN comme résultat à moins que l’expression ait une valeur logique ou numérique bien définie pour toute valeur de NaN :
True OR NAN → True
NAN AND False → False
IF True THEN 5 ELSE NAN → 5
Null
Null
est un résultat mal défini, indiquant généralement qu’il n’y a rien à l’emplacement demandé, par exemple un indice utilisant une valeur qui ne correspond pas à une valeur de l’index:
Index I := 1..5
X → Null
Les autres opérations et fonctions qui peuvent retourner Null comprennent Slice(), Subscript(), Subindex() et MdTable(), par ex.g.
Index Year :=
Slice(Year, 4) → NULL
Variable X := Array(Year, )
X → NULL
Vous pouvez tester pour Null en utilisant les opérateurs standards = ou <>, comme:
X = Null → True
ou vous pouvez utiliser IsNull(X)
. Cependant, x=Null
et IsNull(x)
sont différents lorsque x
peut être un tableau. x=Null
est une comparaison au niveau des cellules, où chaque cellule est testée pour l’égalité avec Null, le résultat ayant la même dimension que x
, alors que IsNull(x)
teste si la valeur entière est exactement Null. Lorsque x
est un tableau où chaque cellule est égale à Null, IsNull(x)
est faux.
Lorsque Null apparaît dans des opérations scalaires, il produit généralement un avertissement et s’évalue à Null, par exemple :
10 + Null → Null
Null - 10 → Null
1 AND Null → Null
Les fonctions de réduction de tableaux ignorent Null. Ces exemples le démontrent (supposez que A
est indexé par I
comme indiqué).
variable A :=
I ▶ | ||||
---|---|---|---|---|
1 | 2 | 3 | 4 | 5 |
8 | Null | 4 | Null | 0 |
Alors
Sum(A, I) → 12
Average(A, I) → 4
JoinText(A, I, ', ') → "8, 4, 0"
Les graphiques vont simplement ignorer (ne pas montrer) tout point dont la valeur est Null.
Les fonctions réduisant les tableaux comprennent Sum(), Min(), Max(), ArgMin(), ArgMax(), Product(), Average(), JoinText(), Irr(), Npv().
Regression() ignore également tous les points de données qui ont Y = Null
, ce qui est utile pour les données manquantes.
Voir aussi
- INF, NAN, et Null
- IsNaN
- IsNull
- Nombres
- Erreurs résultant de valeurs Null
.