Exemples d'expressions arithmétiques : BizTalk Services

Mis à jour: août 2015

Fournit des exemples d'expressions arithmétiques dans Microsoft Azure BizTalk Services.

Toutes les valeurs d'entrée arithmétiques sont basées sur des littéraux numérique pour représenter des valeurs numérique du type CLR System.Double type. Les exemples suivants présentent les littéraux numériques pris en charge :

  • 100

  • 100.25

  • 0.25

  • .25

  • 8e2, 8e+2, 8E2, 8E+2

  • 1.2e8

  • 1.2e-8, 1.2E-8

ImportantImportant
L'analyseur de Transformation ne prend pas en charge les suffixes qui indiquent le type de données d'un littéral numérique. Par exemple, l'utilisation de 2L pour représenter Long n'est pas prise en charge.

La méthode Double.TryParse() est utilisée pour vérifier qu'une valeur de littéral numérique est une valeur double valide. Si ce n'est pas le cas, l'argument est converti en valeur double à l'aide de la méthode Convert.ToDouble(). Si la conversion échoue, la valeur est zéro.

Rappels concernant les expressions arithmétiques :

  • Si une expression arithmétique comprend plusieurs opérateurs, la multiplication, la division et le modulo sont évalués en premier. Ensuite l'addition et la soustraction sont évaluées.

  • Utilisez des parenthèses pour contrôler l'ordre. Par exemple, l'addition ou la soustraction de valeurs d'entrée entre parenthèses permet que cette partie de l'expression soit évaluée en premier.

  • Les valeurs numériques ne sont pas arrondies, sauf en cas d'utilisation spécifique de Round.

Les exemples d'expressions ci-après utilisent les valeurs d'entrée suivantes :

 

Entrée1

ab123.456

Entrée2

78.9

Entrée3

-123.11

Basée sur la méthode Expression.Add. Nécessite deux arguments de type double. Si une conversion en valeur double échoue, la valeur est zéro et l'opération est effectuée.

 

Expression Résultat

Entrée1+Entrée2

0 + 78.9 = 78.9

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée1+Entrée2+Entrée3

0 + 78.9 + (-123.11) = -44.21

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée2+Entrée3

78.9 + (-123.11) = -44.21

Entrée1+Entrée3

0 + (-123.11) = -123.11

Entrée1 est 0 car la conversion en valeur double échoue.

Basée sur la méthode Expression.Subtract. Nécessite deux arguments de type double. Si une conversion en valeur double échoue, la valeur est zéro et l'opération est effectuée.

 

Expression Résultat

Entrée1-Entrée2

0 - 78.9 = -78.9

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée1-Entrée2-Entrée3

0 - 78.9 – (-123.11) = 44.21

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée2-Entrée3

78.9 - (-123.11) = 44.21

Entrée1-Entrée3

0 – (-123.11) = 123.11

Entrée1 est 0 car la conversion en valeur double échoue.

(Entrée1+Entrée2)-Entrée3

(0 + 78.9) – (-123.11) = 202.11

Entrée1 est 0 car la conversion en valeur double échoue.

Basée sur la méthode Expression.Multiply. Nécessite deux arguments de type double.

Si une conversion en valeur double échoue, la valeur est zéro et l'opération est effectuée. Si les deux entrées sont correctement converties en valeurs doubles, la multiplication est effectuée et la valeur est renvoyée. Si une seule des entrées est correctement convertie en valeur double, la valeur de cette entrée est renvoyée. Si aucune des entrées n'est correctement convertie en valeur double, la valeur zéro est renvoyée.

 

Expression Résultat

Entrée1*Entrée2

0 * 78.9 = 78.9

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée1*Entrée2*Entrée3

0 * 78.9 * (-123.11) = -9713.379

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée2*Entrée3

78.9 * (-123.11) = -9713.379

Entrée1*Entrée3

0 * (-123.11) = -123.11

Entrée1 est 0 car la conversion en valeur double échoue.

(Entrée1*Entrée2)-Entrée3*Entrée2

(0 * 78.9) – (-123.11) * 78.9 =

78.9 – (-9713.379) = 9792.279

Entrée1 est 0 car la conversion en valeur double échoue.

Basée sur la méthode Expression.Divide. Nécessite deux arguments de type double.

Si une conversion en valeur double échoue, la valeur est zéro et l'opération est effectuée. Si les deux entrées sont correctement converties en valeurs doubles et que la valeur du dénominateur est différente de zéro, la division est effectuée et la valeur est renvoyée. Sinon, la valeur zéro est renvoyée.

 

Expression Résultat

Entrée1/Entrée2

0 / 78.9 = 0

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée1/Entrée2/Entrée3

0 / 78.9 / (-123.11) = 0

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée2/Entrée3

78.9 / (-123.11) = -0.6408902

Entrée3/Entrée1

-123.11 / 0 = 0

Entrée1 est 0 car la conversion en valeur double échoue.

Quand le dénominateur est égal à zéro, la sortie est zéro.

(Entrée1/Entrée2)-Entrée2/Entrée3

(0 / 78.9) – (-123.11 / 78.9) =

0 – (-1.560329531051965) = 1.560329531051965

Entrée1 est 0 car la conversion en valeur double échoue.

Basé sur la méthode Expression.Modulo. Nécessite deux arguments de type double.

Si une conversion en valeur double échoue, la valeur est zéro et l'opération est effectuée. Si les deux entrées sont correctement converties en valeurs doubles et que la valeur du dénominateur est différente de zéro, le reste est renvoyé. Sinon, la valeur zéro est renvoyée.

 

Expression Résultat

Entrée1%2

0 % 2 = 0

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée1+Entrée2%4

0 + 78.9 % 4 = 2.9

Entrée1 est 0 car la conversion en valeur double échoue.

78.9 / 4 = 19.725 ; 19 est le quotient et 2.9 est le reste car 78.9 = 4 * 19 + 2.9

Entrée2%Entrée1

78.9 % 0 = 0

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée3%Entrée2

-123.11 % 78.9 = -44.21

-123.11 / 78.9 = -1.560329531051965 ; -1 est le quotient et -44.21 est le reste car -123.11 = 78.9 * (-1) + (-44.21)

(Entrée1%Entrée2)*Entrée2%Entrée3

(0 % 78.9) * (78.9 % (-123.11)) =

0 * (78.9) = 0

Entrée1 est 0 car la conversion en valeur double échoue.

78.9 / -123.11 = -0.6408902607424255 ; -0 est le quotient et 78.9 est le reste car 78.9 = -123.11 * (-0) + 78.9

Basée sur la méthode Math.Abs. Nécessite un seul argument et le convertit en valeur double. Si la conversion en valeur double réussit, la valeur absolue de l'argument est renvoyée. Sinon, la valeur zéro est renvoyée.

 

Expression Résultat

Abs(Entrée1)

0

Entrée1 est 0 car la conversion en valeur double échoue.

Abs(Entrée2)

78.9

Abs(Entrée3)

123.11

Abs(Entrée1)+Abs(Entrée2)+Abs(Entrée3)

0 + 78.9 + 123.11 = 202.01

(Abs(Entrée1)*Abs(Entrée2))*Entrée2%Abs(Entrée3)

(0*78.9) * 78.9 % 123.11 =

78.9 * 78.9 % 123.11 =

6225.21 % 123.11 = 69.71

Entrée1 est 0 car la conversion en valeur double échoue.

(0*78.9): Souvenez-vous qu'avec la multiplication, si un seul des arguments peut être converti correctement en valeur double, la valeur de cet argument est renvoyée.

6225.21 / 123.11 = 50.566241 ; 50 est le quotient et 69.71 est le reste car 6225.21 = 123.11 * 50 + 69.71

Basée sur la méthode Math.Max. Nécessite deux arguments de type double.

Si les deux entrées sont correctement converties en valeurs doubles, la valeur maximale des deux valeurs d'entrée est renvoyée. Si une seule des entrées est correctement convertie en valeur double, la valeur de cette entrée est renvoyée. Si aucune des entrées n'est correctement convertie en valeur double, la valeur zéro est renvoyée.

 

Expression Résultat

Max(Entrée1,Entrée2)

78.9

Comme la conversion en valeur double d'Entrée1 échoue, la seconde valeur d'entrée est renvoyée.

Max(Entrée2, Entrée3)

78.9

Max(Entrée3, Entrée2)+Max(Entrée2, Entrée1)+Max(Entrée3, Entrée1)

78.9 + 78.9 + (-123.11) = 34.69

Comme la conversion en valeur double d'Entrée1 échoue, la seconde valeur d'entrée est renvoyée.

(Max(Entrée1, Entrée3)*Max(Entrée2, Entrée3))* Entrée2%Abs(Max(Entrée3, Entrée1))

((-123.11) * 78.9) * 78.9 % 123.11 =

-9713.379 * 78.9 % 123.11 =

-766385.6031 % 123.11 = -25.8531

Comme la conversion en valeur double d'Entrée1 échoue, la seconde valeur d'entrée est renvoyée.

-766385.6031 / 123.11 = -6225.21 ; -6225 est le quotient et -25.8531 est le reste car -766385.6031 = 123.11 * (-6225) + (-25.8531)

Basée sur la méthode Math.Min. Nécessite deux arguments de type double.

Si les deux entrées sont correctement converties en valeurs doubles, la valeur minimale des deux valeurs d'entrée est renvoyée. Si une seule des entrées est correctement convertie en valeur double, la valeur de cette entrée est renvoyée. Si aucune des entrées n'est correctement convertie en valeur double, la valeur zéro est renvoyée.

 

Expression Résultat

Min(Entrée1,Entrée2)

78.9

Comme la conversion en valeur double d'Entrée1 échoue, la seconde valeur d'entrée est renvoyée.

Min(Entrée2, Entrée3)

-123.11

Min(Entrée3, Entrée2)+Min(Entrée2, Entrée1)+Min(Entrée3, Entrée1)

(-123.11) + 78.9 + (-123.11) = -167.32

Comme la conversion en valeur double d'Entrée1 échoue, la seconde valeur d'entrée est renvoyée.

(Min(Entrée1, Entrée3)*Min(Entrée2, Entrée3))* Entrée2%Abs(Min(Entrée3, Entrée1))

((-123.11) * (-123.11)) * 78.9 % 123.11 =

15156.0721 * 78.9 % 123.11 =

1195814.08869 % 123.11 = 46.65869

Comme la conversion en valeur double d'Entrée1 échoue, la seconde valeur d'entrée est renvoyée.

1195814.08869 / 123.11 = 9713.379 ; 9713 est le quotient et -46.65869 est le reste car 1195814.08869 = 123.11 * 9713 + 46.65869

Basée sur la méthode Math.Round. Nécessite au moins un argument qui est converti en valeur double et un second argument facultatif qui doit être un entier non négatif. Si la conversion échoue, la valeur zéro est renvoyée.

Si le second argument n'est pas fourni, le premier argument est arrondi à l'entier le plus proche. Si le second argument est un entier positif, le premier argument est arrondi au nombre de chiffres spécifiés dans le second argument. Le nombre maximal de chiffres pour l'arrondi est 15. Même si le second argument a une valeur supérieure, l'arrondi se fera à 15 chiffres. Si le second argument ne peut pas être converti en entier non négatif, la valeur zéro est renvoyée.

 

Expression Résultat

Round(Entrée1)

0

Entrée1 est 0 car la conversion en valeur double échoue.

Round(Entrée3, 1)

-123.1

Round(Entrée3, 5)

-123.11

Round(Entrée2)*Round(Entrée3, 1)

-79 * (-123.1) = -9724.9

Round(Entrée3)/Round(Entrée2, 17)*Round(Entrée3)

123 / 78.9 * 123 =

1.5589353 * 123 = 191.74904

Basée sur la méthode Math.Sqrt. Nécessite un seul argument et le convertit en valeur double. Si la conversion réussit, la racine carrée est renvoyée. Si l'argument est un nombre négatif, NaN est renvoyé. Si la conversion échoue, la valeur zéro est renvoyée.

 

Expression Résultat

Sqrt(Entrée1)

0

Entrée1 est 0 car la conversion en valeur double échoue.

Sqrt(Entrée2)

8.882567196480981

Sqrt(Entrée3, 5)

NaN

Entrée3 est NaN (Not a Number) car l'entrée est négative.

Sqrt(Entrée1)+Sqrt(Entrée2)*Sqrt(Entrée3)

0 + 8.882567196480981 * NaN = NaN

Entrée1 est 0 car la conversion en valeur double échoue.

Entrée3 est NaN car la chaîne est un nombre négatif.

Toute opération arithmétique qui implique NaN a pour résultat NaN.

Sqrt(Entrée2)+Round(Entrée3, 1)*Abs(Entrée1)

8.882567196480981 + (-123.1) * 0 =

8.882567196480981 + (-123.1) = -114.217432803519

Entrée1 est 0 car la conversion en valeur double échoue.

(-123.1 * 0): Souvenez-vous qu'avec la multiplication, si un seul des arguments peut être converti correctement en valeur double, la valeur de cet argument est renvoyée.

Si une erreur survient avec une Opération de mappage d'expression arithmétique, la totalité de la Transformation est annulée par défaut. Il est possible de configurer le comportement de gestion de cette erreur. Consultez Gestion des données et des erreurs dans la rubrique Expressions dans BizTalk Services : utilisation et exemples.

Voir aussi

Afficher: