Évaluateur d’expression
Calculez le résultat d'une expression avec des entiers, des décimales, des variables numériques, des variables de chaîne pour comparer les chaînes, des opérateurs arithmétiques et booléens, ou un ensemble de fonctions.
Propriétés
Propriété | Description |
---|---|
Expression | Expression à calculer. L'expression peut contenir un nombre illimité de parenthèses correctement ouvertes et fermées. Si la syntaxe de l'expression est incorrecte, le convertisseur n'exécute pas le calcul. |
Mode | Direction du lien dynamique :
|
Source
Une ou plusieurs variables identifiées par un espace réservé avec un numéro d'index au format
{
suivant. Le numéro d'index est progressif et doit être un entier supérieur à zéro index
}{0}
.Les espaces réservés peuvent s'afficher dans n'importe quel ordre dans l'expression. Utilisez autant de parenthèses que vous voulez dans l’expression.
Litéraux
- Boolean.
- Entiers.
- Décimales séparées par un point.
- Nombres hexadécimaux avec le préfixe0x.
- Texte tel qu'une chaîne délimitée par des guillemets doubles.CONSEIL: Les guillemets doubles répétés deux fois ("") sont interprétés comme une séquence d'échappement.
- Date et heure. Par exemple,2017-06-28T15:26:06.0790910.
Opérateurs
Catégorie | Opérateur | Associativité | Commentaire |
---|---|---|---|
Unaire | Moins unaire : - NOT binaire : ~ Opérateur de conversion : (type) | De droite à gauche | L’opérateur de conversion (type) ne s’applique qu’aux types de données numériques et Boolean. |
Multiplicatif | * ,/ , % | De gauche à droite | |
Additif | + , - | De gauche à droite | |
Décaler | << , >> | De gauche à droite | Les opérateurs de décalage et relationnels s’appliquent aux types de données suivants :
|
Relationnel | < , <= , > , >= | De gauche à droite | |
Égalité | == , != | De gauche à droite | Les opérateurs Égalité s’appliquent aux types de données suivants :
|
AND XOR, OR binaires | & , ^ , | | De gauche à droite | |
AND logique | && | De gauche à droite | |
OR logique | || | De gauche à droite |
Types de données
Conventions sur les types de données dans l’évaluateur d’expression :
- Les entiers littéraux sont Int32.
- Les littéraux décimaux sont Double.
- Les valeurs numériques sont considérées comme Int32.
- Les littéraux Vrai et Faux sont interprétés comme Boolean.
- L'opérateur / renvoie toujours une valeur Double.
- L'opérateur % génère une exception en cas de division par modulo zéro.
- L'opérateur % accepte les opérandes Float et Double.
- Toutes les fonctions renvoient une valeur Double à l'exception du signe, qui renvoie une valeur Int32.
Le
type
des opérateurs de conversion unaire peut être l’un des types de données suivants :- bool, Boolean
- sbyte, SByte
- short, Int16
- int, Int32
- long, Int64
- byte, Byte
- ushort, UInt16
- uint, UInt32
- ulong, UInt64
- float, Float
- double, Double
Opérateurs appliqués à des types de données spécifiques :
Opérateur | Operand1 | Operand2 | Description |
---|---|---|---|
Plus | DateTime | Nombre intégral | Operand2 est interprété en millisecondes. |
Plus | Nombre intégral | DateTime | Operand1 est interprété en millisecondes. |
Plus | DateTime | TimeZone (Struct) | Operand2 est interprété en minutes (TimeZone.Offset). |
Plus | TimeZone (Struct) | DateTime | Operand1 est interprété en minutes (TimeZone.Offset). |
Plus | TimeZone | Nombre intégral | Operand1 est interprété en minutes (TimeZone.Offset).Operand2 est interprété en minutes. |
Plus | Nombre intégral | TimeZone | Operand1 est interprété en minutes.Operand2 est interprété en minutes (TimeZone.Offset). |
Moins | DateTime | Nombre intégral | Operand2 est interprété en millisecondes. |
Moins | DateTime | TimeZone (Struct) | Operand2 est interprété en minutes (TimeZone.Offset). |
Moins | TimeZone | Nombre intégral | Operand1 est interprété en minutes (TimeZone.Offset).Operand2 est interprété en minutes. |
Fonctions
Fonctions à utiliser dans l’évaluateur d’expression :
Fonction | Syntaxe | Description | Afficher le type de données |
---|---|---|---|
max | max( value1 , value2 , value3 , ...) | Affiche la valeur la plus élevée. | Double |
min | min( value1 , value2 , value3 , ...) | Affiche la valeur la plus basse. | Double |
avg | avg( value1 , value2 , value3 , ...) | Affiche la moyenne des valeurs données. | Double |
abs | abs( value ) | Affiche la valeur absolue du nombre donné. | Double |
trunc | trunc( value ) | Affiche la partie entière d'un nombre décimal. | Double |
ceil | ceil( value ) | Affiche la valeur approximative par excès. | Double |
floor | floor( value ) | Affiche la valeur approximative par défaut. | Double |
round | round( value ) | Affiche l’approximation à l’entier le plus proche. | Double |
sqrt | sqrt( value ) | Affiche la racine carrée du nombre donné. | Double |
sign | sign( value ) | Vérifie si le nombre à virgule flottante donné est négatif. Affiche 0 si vrai ou 1 si faux. | Int32 |
like | like( string_value , pattern ) | Affiche vrai si le paramètre string_value correspond à la valeur pattern . | Boolean |
isempty | isempty( variable ) | Vérifie si un NodeID, String, LocalizedText ou DataTime donné est vide. | Boolean |
if | if( condition , value_if_true , value_if_false ) | Vérifie si les paramètres value_if_true et value_if_false ont le même type de données. | Type de données value_if_true |
Sortie
Valeur résultante de l'expression.
Exemple
Fournir une réponse