Opérateur ** (Exposant)

Élève un nombre à la puissance d’un autre nombre

Utilisation

base ** exposant

Paramètres

base

(Requis) Le nombre de base à élever

exposant

(Requis) L’exposant auquel le nombre de base est élevé

Exemples

Exemple Avec ces variables Résultat

2 ** 3

(Aucune)

8

10 ** 2

(Aucune)

100

a ** b

a est 5
b est 4

625

-5 ** 2

(Aucune)

-25

10 ** 2 ** 0

(Aucune)

10

Plus d'information

Plusieurs opérateurs peuvent être utilisés. L’ordre des opérations est le même qu’en mathématiques :

  • le contenu des parenthèses est évalué en premier
  • ensuite, les exposants sont évalués, de droite à gauche
  • puis, la multiplication et la division sont évaluées, de gauche à droite
  • les opérateurs restants sont ensuite appliqués de gauche à droite

Comparé à Excel

Excel utilise ^ pour l’exponentiation. DocuMold ne l’utilise pas, car le ^ d’Excel a des comportements inattendus. Utiliser ** aide à souligner qu’il y a des différences par rapport à Excel.

Voici les comportements inattendus d’Excel :

  • -1 ^ 2 donne 1. Les mathématiques et la plupart des langages de programmation disent que cela devrait être -1. Le signe moins seul est un raccourci pour -1 * et l’exponentiation doit être faite avant la multiplication.
  • 2 ^ 2 ^ 0 donne 1. Les mathématiques et la plupart des langages de programmation disent que cela devrait être 2. Les exposants sont censés être évalués de droite (donc 2 ^ (2 ^ 0) -> 2 ^ 1 => 2), mais Excel le fait de gauche (donc (2 ^ 2) ^ 0 -> 4 ^ 0 => 1).

L’** de DocuMold n’a pas ces comportements inattendus.

Rappels

Un texte contenant des chiffres n’est pas traité comme un nombre. Pour avoir un véritable nombre :

  • utilisez @NUMBER_QUESTION pour définir la variable
  • écrivez une valeur numérique directement dans le code sans guillemets, ex : âge >= 18
  • utilisez une fonction qui convertit en nombre : NUMBER(texte_contenant_des_chiffres)
  • utilisez une fonction qui renvoie un nombre : FIND("monde", "bonjour tout le monde")

Voir aussi