Ce document décrit les opérations de calcul qui peuvent être réalisées à l'aide du script AE.
Le script AE fournit les quatre opération de base sous la forme d'éléments de script :
Vous disposez également de la fonction de script MOD qui récupère le reste d'une division.
La fonction de script RANDOM vous permet de générer, si nécessaire, des nombres aléatoires.
Le résultat de l'opération est enregistré dans une variable de script.
Exemple :
:SET &DIFFERENCE# = SUB(100,50)
Dans les opérations de calcul, les nombres négatifs (type de données : "signed") et les nombres décimaux (type de données : "float") sont aussi pris en charge. La variable cible qui contient le résultat du calcul doit présenter le type de données approprié. Le type de données "string" n'est pas autorisé pour les opérations de calcul !
Les chiffres après la virgule des résultats sont supprimés lorsque le type de données de la variable cible ne prend pas en charge les nombres décimaux.
Si une opération de calcul fournit un résultat négatif et que le type de données de la variable cible ne prend pas en charge les signes, une erreur d'exécution se produit !
Automic recommande d'utiliser le type de données le plus élevé comme type de données de la variable cible (voir le tableau). Le résultat du calcul ne doit pas dépasser la valeur "9 999 999 999 999 999".
Types de données des opérandes | Types de données autorisés de la variable cible |
---|---|
unsigned, unsigned | unsigned, signed, float |
unsigned, signed | signed, float |
unsigned, float | float |
signed, signed | signed, float |
signed, float | float |
float, float | float |
Le type de données le plus élevé est "float" (nombres décimaux positifs et négatifs). Vient ensuite le type de données "signed" (nombres entiers positifs et négatifs). Le type de données "unsigned" ne prend en charge que les nombres entiers positifs. Il s'agit du type de données le moins élevé.
Exemple : Le type de données de la variable de résultat "&SUM#" doit être au moins "signed" si un nombre négatif a été indiqué comme opérande. Le type de données "float" est aussi possible.
:DEFINE &UNSIGNED#,unsigned
:DEFINE &SIGNED#,signed
:DEFINE &SUM#,signed
:SET &UNSIGNED# = 12
:SET &SIGNED# = -5
:SET &SUM# = ADD(&SIGNED#,&UNSIGNED#)
Cette ligne résulterait en une erreur :
:SET &UNSIGNED# = ADD(&SIGNED#,&UNSIGNED#)
Attention : lors d'opérations de calcul avec des nombres variables, le résultat peut être imprécis !
Dans AE, vous pouvez aussi résoudre une expression arithmétique à l'aide de l'élément de script :SET et enregistrer le résultat dans une variable. Ceci réduit et simplifie significativement la longueur du script.
Si la variable cible présente le type de données "unsigned" et que le résultat du calcul donne un nombre négatif, une erreur d'exécution de produit. Si le type de données de la variable cible ne prend pas en charge les nombres décimaux, ils sont également supprimés.
Parallèlement aux types de calcul de base, le calcul peut contenir des parenthèses et des signes.
Une ligne qui contient des opérateurs de calcul (+,-,*,/) est généralement traitée comme un terme. Veillez à ne pas placer le terme entre guillemets simples ou doubles. Sinon, il est interprété comme une chaîne de caractères.
Attention : Vous ne devez pas utiliser de fonctions de script dans les expressions arithmétiques.
Veillez à la pondération des opérateurs (l'opérateur de multiplication est prioritaire sur l'opérateur de soustraction).
Exemple :
:DEFINE &UNSIGNED#,unsigned
:DEFINE &FLOAT#,float
:DEFINE &RES#,float
:SET &UNSIGNED# = 12
:SET &FLOAT# = -0.50
:SET &RES# = &FLOAT#*3 + (-&UNSIGNED#) - 3
Rubriques connexes :
Elément de script | Description |
---|---|
Exécute une addition. | |
Exécute une soustraction. | |
MULT | Exécute une multiplication. |
DIV | Exécute une division. |
MOD | Indique le quotient d'une division. |
RANDOM | Génère des nombres aléatoires. |
Vérifie qu'un bit particulier est défini dans un champ de bit |
Généralités sur les scripts
Eléments de script - Liste alphabétique
Eléments de script - Répartition fonctionnelle